Hier ist das phonetische Alphabet:
Alfa
Bravo
Charlie
Delta
Echo
Foxtrot
Golf
Hotel
India
Juliett
Kilo
Lima
Mike
November
Oscar
Papa
Quebec
Romeo
Sierra
Tango
Uniform
Victor
Whiskey
X-ray
Yankee
Zulu
In möglichst wenigen Bytes:
- Diese Wörter werden in zufälliger Reihenfolge eingegeben, wobei die ersten Buchstaben entfernt werden.
- Ihr Ziel ist es, die Wörter wieder in ihre ursprüngliche Reihenfolge zu bringen, indem Sie nur die Buchstaben verwenden, die Sie jetzt haben . Mit anderen Worten: Finde heraus, wie '[A] lfa' vor '[B] ravo' kommt und so weiter. Ihr Code darf nicht auf die ursprüngliche Liste, die Indexschlüssel usw. verweisen.
- Stellen Sie die ursprünglichen Anfangsbuchstaben jedes Wortes wieder her.
Regeln
- Der Bindestrich im Röntgenbild ist wahrscheinlich böse, muss aber bleiben, denn ich bin auch böse.
- Das Ergebnis kann eine Zeichenfolge (z. B. durch Kommas oder Zeilenumbrüche getrennt) oder ein Array sein.
- Die Schreibweisen und Groß- und Kleinschreibung sind nicht verhandelbar.
- Beispielausgabe muss nicht in Antworten angezeigt werden.
code-golf
data-structures
alphabet
rybo111
quelle
quelle
Antworten:
Gelee , 21 Bytes
Eingabe und Ausgabe sind String-Arrays.
Probieren Sie es online aus!
Hintergrund
Während es 26 sind! = 403291461126605635584000000 verschiedene Eingaben, wir können die Eingabe sortieren, so dass wir nur mit einer Permutation dieses phonetischen Alphabets umgehen müssen. Wenn wir lexikographisch sortieren, erhalten wir
Wir können einfach in dieses Array indizieren, um es nach den entfernten Buchstaben zu sortieren. Die (1-basierten) Indizes sind
Sie müssen lediglich die Großbuchstaben des Alphabets den Zeichenfolgen im Ergebnis voranstellen.
Wie es funktioniert
quelle
Python 3 ,
7671 BytesProbieren Sie es online aus!
quelle
JavaScript, 169/195 Bytes
Wenn das Ersetzen des ersten Buchstabens vor dem Sortieren von 169 Bytes erfolgen kann
Probieren Sie es online aus!
Wenn vor dem Hinzufügen des ersten Buchstabens 195 Bytes sortiert werden müssen
Probieren Sie es online aus!
Volle 20 Bytes jedes dieser Programme sind nur String.fromCharCode (), um das Zeichen wiederzugewinnen ...
Weitere 69 Bytes sind Zeichenfolgen, die den Anfang jedes Wortes im phonetischen Alphabet eindeutig identifizieren.
Erklärung des ersten Beispiels
for(i=0;i<26;)if(!k.indexOf("l,r,ha,e,c,ox,ol,ot,nd,uli,il,im,ik,ov,s,ap,ue,o,ie,ang,n,i,h,-,a,u".split
,[i++]))return i
Die hier fest codierte Zeichenfolge wird in eine Liste der eindeutigen identifizierenden Zeichen unterteilt, mit denen die phonetischen Alphabetwörter beginnen, nachdem das erste Zeichen entfernt wurde.
Diese Informationen werden verwendet, um den Index zu finden, in den die Zeichenfolge im Alphabet fällt, um das Startzeichen wieder zu aktivieren.
JavaScript sortiert implizit als Zeichenfolgen nach den ASCII-Werten der Zeichen
Erklärung des zweiten Beispiels
Die Funktion g = k => ... findet den Index, für den die Zeichenfolge in das phonetische Alphabet fallen soll.
Sortiert die Zeichenfolgen nach den Zahlen, die durch Ausführen von g (...) zurückgegeben werden.
Ersetzt das erste Zeichen jeder der phonetischen Alphabetzeichenfolgen
quelle
.sort()
in Ihrer 169 Byte Antwort? In der Frage heißt es " 3. Stellen Sie die ursprünglichen Anfangsbuchstaben jedes Wortes wieder her. ", Aber es wird nicht erwähnt, dass die Ausgabe ebenfalls sortiert werden muss.PHP , 94 Bytes
Probieren Sie es online aus!
quelle
05AB1E ,
2927 BytesProbieren Sie es online aus!
-2 dank Emignas Magie
.•
.quelle
.•C5ê™вrΓ˜3åóMîõxÿ•u
.A-Za-z0-9
anstatt indiziert wird0-9A-Za-z
?Java 7, 169 Bytes
Probieren Sie es hier aus.
Erläuterung:
quelle