Über das Alphabet
Bei dieser Herausforderung fällt es Ihnen schwer, sich an die Buchstaben des Alphabets zu erinnern. Um dies zu umgehen, gehen Sie das Alphabet auf und ab, bis Sie zum Buchstaben kommen.
Da Sie möchten, dass Ihr Code portabel ist, schreiben Sie ihn mit Buchstabenblöcken. Sie haben eine begrenzte Anzahl von Buchstabenblöcken, da die meisten gestohlen wurden. Stellen Sie daher sicher, dass Ihr Code so kurz wie möglich ist.
Beispiele
Eingabe / Ausgabe-Paare werden durch eine Leerzeile getrennt:
Ac
ABc
Ad
ABcd
fA
fedCBA
adB
abcdcB
Hello, World!
HGfefghijkllmno, WVUTSrqpopqrqponmlkjihgfed!
Herausforderung
Ihr Ziel ist es, benachbarte Buchstaben mit allen Zwischenbuchstaben des Alphabets ( A-Za-z
) dazwischen zu verketten. Wenn sich die Groß- und Kleinschreibung unterscheidet, sollte die Groß- und Kleinschreibung in der Mitte umgewandelt werden. Wenn die Kapitalisierung in der Mitte nicht gleichmäßig transformiert werden kann, wird sie nach der Mitte aufgelöst. Wenn ein Zeichen kein alphabetisches Zeichen ist, sollte keine Transformation durchgeführt werden.
Gewinnen
Das ist Code-Golf, also gewinnt der kürzeste Code in Bytes!
-10% Bonus: Wenn Ihr Code Ziffern enthält
adB
nach Ihren Regeln transformieren sollten,abcdCB
weil c in der Mitte von d und b liegt.Antworten:
Pyth, 40 Bytes
Probieren Sie es online aus.
quelle
Python 2,
303291288282276261253 BytesDies ist ein völlig anderer Algorithmus als der von Hannes Karppila, und nach viel Golf habe ich eine wesentliche Verbesserung der Länge erreicht. Ich denke, dass dieser Algorithmus auch in anderen Sprachen einen der kürzesten Codes zulässt, insbesondere in Sprachen mit do-while-Schleifen und integrierten Signum-Funktionen. Verbesserungsvorschläge sind willkommen. (Irgendwas sagt mir, dass die gesamte innere Schleife als Listenverständnis umgeschrieben werden sollte.)
quelle
JavaScript (ES6),
198197194 ByteVerwendung
Erläuterung
quelle
\w
schlägt mit Ziffern fehl. Versuchen Sie '09'a>b?a-b:b-a
... und es gibt weitere 'Standard'-Tricks, um Javascript zu verkürzen. Mit deiner Interpolationsmethode könntest du meine Punktzahl übertreffen. Überprüfen Sie die Hinweise auf dieser WebsiteJavaScript ES6, 168 (186-10%)
176 193Bearbeiten Geändert, um den 10% -Bonus zu erhalten
Testen Sie das folgende Snippet mit einem EcmaScript 6-kompatiblen Browser (ich verwende FireFox)
quelle
Python 2, 349 Bytes
Es ist viel zu lang, aber zumindest ist es das erste Mal.
quelle