Willkommen zu Ihrem ersten Tag bei PPCG Inc. Als unser neuester Junior Assistant Document Sorter sind Sie dafür verantwortlich, dass alle an Sie gesendeten Dokumente in alphabetischer Reihenfolge archiviert werden. Es ist so einfach, dass ein Affe das kann. Nun, bildlich gesprochen, da wir dafür einen Affen engagiert haben. Erraten Sie, was? Es stellte sich heraus, dass Affen unser Alphabet nicht verstehen. Wie auch immer, es gibt keine Zeit, das Chaos zu beheben, das es gerade gibt. Versuchen Sie also, die Situation nicht noch schlimmer zu machen, okay? Dann machen Sie sich daran! Wenn Sie hungrig werden, stehen Bananen neben dem Wasserkühler. Viel Glück!
Jobbeschreibung
Eingang
- Sie erhalten eine Liste mit Zeichenfolgen (das Archiv) und eine Zeichenfolge, die dieser Liste (dem Dokument) hinzugefügt werden muss.
- Alle Zeichenfolgen enthalten nur Großbuchstaben, Kleinbuchstaben und Leerzeichen
- Zeichenfolgen beginnen und enden immer mit einem Buchstaben
Aufgabe
Bestimmen Sie die Zielposition des Dokuments: die Position, die es im Archiv erhalten soll. Die Zielposition kann wie folgt bestimmt werden:
- Für jede Position:
- Zählen Sie die Anzahl der Zeichenfolgen im Archiv vor dieser Position, die alphabetisch vor dem Dokument stehen
- Zählen Sie die Anzahl der Zeichenfolgen im Archiv nach dieser Position, die alphabetisch nach dem Dokument stehen
- Definieren Sie die Punktzahl der Position als die Summe der beiden obigen Zählungen
- Die Zielposition des Dokuments ist die Position mit der höchsten Punktzahl
- Bei einem Gleichstand gelten alle Positionen mit der höchsten Punktzahl gleichermaßen als Zielposition. Es muss nur eine ausgewählt werden.
Beim Sortieren:
- Groß- und Kleinbuchstaben sind gleichwertig
- Leerzeichen kommen vor Buchstaben
Ausgabe
- Das Archiv mit dem hinzugefügten Dokument in beliebiger Form
ODER
- Die Zielposition des Dokuments in einem 0-basierten oder einem 1-basierten Index
Arbeitsbewertung
Wenigste Bytes gewinnt!
Beispiel I / O
Archive:
Applebuck Season
Friendship is Magic
The Ticket Master
Griffon the BrushOff
Boast Busters
Bridle Gossip
Document: Dragonshy
Position scores (0-based index):
0: 0 + 3 = 3
1: 1 + 3 = 4
2: 1 + 2 = 3
3: 1 + 1 = 2
4: 1 + 0 = 1
5: 2 + 0 = 2
6: 3 + 0 = 3
Target position: 1
Antworten:
JavaScript (ES6), 81 Byte
Ungolfed:
Bearbeiten: Dank @ user81655 wurden viele Bytes gespeichert.
quelle
indexOf
Variable durch eine Ergebnisvariable, die während der Zuordnung festgelegt wird, wäre ebenfalls kürzer.Pyth,
4038 BytesCredits @Katenkyo für mich lehren , dass
A xnor B
im Grunde istA==B
. (A xor B
ist auchA!=B
)Probieren Sie es online!
Wie es funktioniert:
Es summiert das XNOR, ob der Eintrag kleiner als das Dokument ist und ob der Index des Eintrags kleiner als der Index des Dokuments ist.
Es findet die Position, an der diese Summe maximal ist, und gibt sie dann aus.
quelle
Python 3,
135167 Bytesquelle
Ruby, 97 Bytes
Anonyme Funktion, gibt die Zielposition zurück.
Beim Einfügen in das Archiv werden 110 Bytes benötigt :
quelle
Pyth,
54524745 BytesExpect-Eingabe ist eine Liste, erstes Element ist eine Liste von Zeichenfolgen (Archiv), zweites Element ist eine Zeichenfolge (Dokument)
Hier testen
quelle
0
dem, wenn ich Ihren Code richtig lese, Sie ein Leerzeichen sparen kann["Applebuck Season","Friendship is Magic","The Ticket Master","Griffon the BrushOff","Boast Busters","Bridle Gossip"]\n "Dragonshy"
als Eingabe und verwenden SieE
anstelle von@Q0
und,@Q1
um vier Byte zu sparen.AQ
anstelle von verwendenJ@Q0K@Q1
.MATL , 32 Bytes
Die Eingabe ist ein Zellenarray von Zeichenfolgen (mehrere Zeichenfolgen, die durch Leerzeichen getrennt und in geschweiften Klammern eingeschlossen sind) für das Archiv und eine Zeichenfolge für das Dokument. Die Ausgabe ist 1-basiert. Im Falle eines Gleichstands wird die erste Position zurückgegeben.
Probieren Sie es online!
Erläuterung
quelle