Diese Anekdote enthält den folgenden interessanten Austausch:
"Gut, Fred", unterbrach Avi. "Wie würden Sie dies dann ändern, um doppelte Einträge zu vermeiden?"
"Oh, ändere diesen hier einfach in einen negativen."
Obwohl diese Behauptung im Kontext nicht korrekt ist, frage ich mich, ob es plausiblen Code gibt, für den dies Sinn macht.
Ihre Herausforderung besteht darin, Code zu schreiben (ein Programm, eine Funktion, was auch immer), der diese Kriterien erfüllt:
- Führt zwei Eingabelisten zu einer zusammen und behält Duplikate bei. [Bearbeiten: Sie können optional annehmen, dass es sich um Ganzzahlen handelt und / oder dass die Listen selbst eindeutig sind. Sie können nicht davon ausgehen, dass die ganzen Zahlen positiv sind (die einzige Antwort, die dies tut, ist grandfathered in).]
- Irgendwo im Code wird eine wörtliche "1" angezeigt. Wenn Sie dies in ein Literal "-1" ändern, führt der Code dasselbe aus, entfernt jedoch Duplikate.
- Der Code verzweigt sich nicht einfach vom 1 / -1. Wir suchen zum Beispiel nicht
if (1 < 1) removeDuplicates()oder[do_nothing, merge_with_dups, merge_without_dups][1].call().
Die Ein- und Ausgabe kann in einem beliebigen Format erfolgen. Ein Beispiel könnte sein
[1,2],[2,3]->[1,2,2,3]vor dem zeichenwechsel und [1,2,3]danach.
Dies ist ein Beliebtheitswettbewerb. Es ist kein Code-Golf , es sei denn, Sie möchten angeben. Ich werde die Antwort mit den meisten Stimmen in ungefähr zwei Wochen annehmen.
-1Fall entfernt werden?