Mathematica, 84 byte
(x="war""peace")(y="freedom""slavery")(z="ignorance""strength")/#/.x->1/.y->1/.z->1&
Spiegazione
Più "aritmetica" con le stringhe! Come nella risposta collegata, ciò si basa sul fatto che è possibile "moltiplicare" stringhe in Mathematica che le lasceranno non valutate (simile alla moltiplicazione di due variabili non assegnate x*y), ma che Mathematica applicherà semplificazioni di base, come la cancellazione di fattori in una divisione.
Dunque iniziamo memorizzando le tre coppie come prodotti x, y, z, rispettivamente, e li moltiplichiamo insieme:
(x="war""peace")(y="freedom""slavery")(z="ignorance""strength")
Questo valuta
"freedom" "ignorance" "peace" "slavery" "strength" "war"
(Mathematica ordina automaticamente i fattori, ma non ci interessa l'ordine.)
Dividiamo questo per l'input per rimuovere la parola con cui non vogliamo .../#, poiché Mathematica annulla i fattori. Ad esempio, se l'input fosse "peace", finiremmo con:
"freedom" "ignorance" "slavery" "strength" "war"
Infine, ci liberiamo delle coppie che non ti interessa, sostituendo ciascuna x, ye zcon 1. Ancora una volta, la semplificazione di Mathematica inizia 1*asempre a. Questa parte è fatta con:
/.x->1/.y->1/.z->1
La cosa bella è che Mathematica sa che la moltiplicazione è Orderlessquindi questo troverà i due fattori indipendentemente dal fatto che siano adiacenti nel prodotto o meno. Solo la parola opposta all'input non è più accoppiata nel prodotto, in modo che non venga rimossa e rimanga come unica uscita.