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.
quelle
-1
Fall entfernt werden?Antworten:
JavaScript
Nehmen Sie einen herkömmlichen Algorithmus und schreiben Sie ihn mit einem Fehler:
Dieser Code enthält genau ein Literal
1
. Wenn es in geändert wird-1
, werden Duplikate entfernt. Es kann auf alle vergleichbaren Werte angewendet werden.quelle
APL 22/23
Fordert zur Bildschirmeingabe über ← screen auf und gibt eine geordnete zusammengeführte Liste mit oder, falls die führende negativ eingestellt ist, ohne Duplikate zurück.
Bytezähler beachten Sie bitte, dass die Einzelbyte-APL-Zeichen in UTF8 konvertiert wurden, um auf dieser Site korrekt dargestellt zu werden.
quelle
k (18)
Sollte für jeden gültigen Listentyp funktionieren
Beispiel:
quelle
Python
quelle
Bash
Im Geiste des Kontexts entfernt dieses Programm die Duplikate, wenn Sie vor dem Kleinbuchstaben
l
in dergrep
Zeile ein Minuszeichen einfügen . Wenn Sie ein Minuszeichen vor dem GroßbuchstabenI
in der vorherigen Zeile oder vor der Ziffer einfügen1
in der nächsten Zeile einfügen, verhält sich das Programm nicht anders.Die Eingabedateien enthalten eine Ganzzahl pro Zeile (dies ist die übliche Darstellung von Listen als Textdateien). Sie müssen als zwei Argumente übergeben werden. Die resultierende Liste wird in das Standardoutput geschrieben.
Fühlen Sie sich frei, dieses Programm als Beispiel für Ihren besten Code in einem Interview zu verwenden. Ich bitte nur darum, dass Sie nicht sagen, dass es mein bester Code ist.
quelle
Tcl
Im Geiste des Zitats
Wenn es sich um ein Duplikat handelt, multiplizieren Sie es mit (-) 1, und filtern Sie anschließend negative Werte heraus.
quelle
Ich bin Anfänger in PHP und weiß nicht, ob es richtig ist
quelle