Das Ziel hier ist es, einfach eine Zeichenfolge mit einem Dreh umzukehren:
Behalten Sie die Großschreibung an den gleichen Stellen.
Beispiel Eingabe 1: Hello, Midnightas
Beispiel Ausgabe 1:SathginDim ,olleh
Beispiel Eingabe 2: .Q
Beispiel Ausgabe 2:q.
Regeln :
- Ausgabe nach STDOUT, Eingabe von STDIN
- Der Gewinner wird am 13. Juli bei GMT + 3 12:00 (eine Woche) ermittelt.
- Die Eingabe darf nur aus ASCII-Symbolen bestehen. Dies erleichtert Programme, die keine Codierung verwenden, die Nicht-ASCII-Zeichen enthält.
- Interpunktionen, die an einer Stelle landen, an der ein Großbuchstabe vorlag, müssen ignoriert werden.
Antworten:
TCC - 4 Bytes
Probieren Sie es online!
Erläuterung:
quelle
tcc.lua
bevor die Herausforderung veröffentlicht wurde? Angesichts der Tatsache, dass Sie kürzlich Befehle hinzugefügt haben, um drei weitere Herausforderungen zu lösen, gehe ich davon aus, dass dies nicht der Fall ist. Wenn für Ihre Antwort eine Version der Sprache erforderlich ist, in der die Herausforderung nachgestellt ist, müssen Sie sie im Header als nicht konkurrierend kennzeichnen. Ich werde meine Ablehnung entfernen, wenn Sie das Etikett hinzufügen oder nachweisen, dass Ihr Code in einer früheren Version funktioniert hat.Python, 71 Bytes
Probieren Sie es online aus
-3 Bytes von Ruud plus die Inspiration für 2 weitere.
-4 weitere Bytes von FryAmTheEggman
quelle
lambda s:''.join([z.lower(),z.upper()][c.isupper()]for c,z in zip(s,s[::-1]))
ist drei Bytes kürzer(z*2).title()[c.isupper()-1]
sollte arbeiten.~c.isupper()
anstelle vonc.isupper()-1
Python 2, 73 Bytes
Da die Regeln die Eingabe spezifizieren, ist ascii:
Der ganze Kredit geht an @Mego, aber ich hatte nicht den Ruf, nur seine Antwort zu kommentieren.
quelle
Perl, 31 + 2 (
-lp
) = 33 BytesDiese Lösung stammt von @Ton Hospel (13 Bytes kürzer als meine).
Aber du wirst brauchen
l
undp
einschalten. Um es auszuführen:quelle
-a
Autosplit verwendet, ich glaube, ich hätte es in der Vergangenheit oft verwenden können! Das muss ich mir merken! Ich denke, Sie können ein weiteres Byte mit speichern,map...,...
anstattmap{...}...
wie$F
am Anfang! :)perl -lpe 's%.%(lc$>$&?u:l)."c chop"%eeg
-a
impliziert wird-F
-a
(und-n
) impliziert-F
, las ich es vor einer Weile auf Perlrun, versuchte es, aber es funktionierte nicht; aber ich habe es jetzt noch einmal versucht und es funktioniert gut, also schätze ich, dass ich damals etwas falsch gemacht habe. Vielen Dank.Pyth,
1311109 BytesVielen Dank an @FryAmTheEggman für die Erinnerung
V
und @LeakyNun für ein weiteres Byte.Probieren Sie es online! jetzt auf dem Handy, Update-Link in ein bisschen
quelle
srV_Qm!rId0
ist 11, aber ich denke, es könnte möglich sein, diese Karte zu verkürzen ...d
und Sie haben ein Byte gespeichert.srV_Qm!/G
sollte ein Byte speichernPython, 66 Bytes
Durchläuft die Indizes
i
, wobei der Buchstabes[~i]
von hinten und der Buchstabe vons[i]
vorne betrachtet wird. Kapital zu sein wird als im zusammenhängenden Bereich liegend geprüft@ABC...XYZ[
. Dank an FryAmTheEggman aus dem(_*2).title()
Streich.quelle
Retina ,
756765 BytesDie Anzahl der Bytes setzt die Kodierung nach ISO 8859-1 voraus.
Probieren Sie es online! (Die erste Zeile aktiviert eine Testsuite mit mehreren durch Zeilenvorschub getrennten Testfällen.)
quelle
JavaScript (ES6),
9583 BytesBearbeiten: Dank @ edc65 wurden massive 12 Bytes gespeichert.
quelle
r=
ist nicht erforderlich.)Pyke,
11109 BytesProbieren Sie es hier aus!
quelle
05AB1E ,
19161513 BytesVielen Dank an Emigna für das Speichern von 3 Bytes!
Wahrscheinlich werde ich von Jelly geschlagen ... Code:
Verwendet die CP-1252- Codierung. Probieren Sie es online! .
quelle
S.l_v¹lRNèyiu}?
ist 1 Byte kürzerÂuvy¹Nè.lilë}?
ist 14. Nur glücklich, ich kann Ihnen einmal helfen :)Ruvy¹Nè.lil}?
tatsächlich. Ich habe die Gabelung nicht benutzt und vergessen, die anderen zu entfernen. Also 13.MATL , 13 Bytes
Probieren Sie es online!
quelle
J , 30 Bytes
Unterstützt kein ASCII
quelle
Brachylog , 28 Bytes
Erläuterung
Hauptprädikat:
Prädikat 1:
quelle
TSQL, 175 Bytes
Golf gespielt:
Ungolfed
Geige
quelle
Eigentlich 25 Bytes
Probieren Sie es online!
Erläuterung:
quelle
Haskell,
83807571 BytesDer einfachste Weg, den ich mir vorstellen konnte.
quelle
(#)
,k
kann ink=reverse>>=zipWith(#)
b
alsf a|isUpper a=toUpper|1>0=toLower
, obwohl dies nicht gegen die Flonk der Verbesserung.f
und Flonk'sk
to umschreibenzipWith f<*>reverse
.s
?k=
.PowerShell,
154,152,99, 86 ByteVielen Dank an @TimmyD, dass du mir satte 47 Bytes gespart hast (ich habe auch weitere 6 Bytes gespart)
Vielen Dank an @TessellatingHeckler, dass Sie weitere 13 Byte gespeichert haben.
Neueste:
Original:
Normale Formatierung:
Neueste (sieht meiner Meinung nach am besten aus als zwei Zeilen):
Erläuterung:
Original:
Das erste Mal Poster hier, war motiviert, weil ich selten PowerShell sehe,
aber beiAnregungen geschätzt.154152 Bytes auf diesem ... Ich kann verstehen, warum!Ich habe gelernt, dass ich meine Denkweise auf Golf in Code und dessen Spaß komplett umstellen muss!
quelle
.tostring()
Anführungszeichen durch Anführungszeichen ersetzen und ASCII-Integer-Manipulation anstelle von Regex verwenden. Versuchen Sie Folgendes für 105 Bytes -param($a)-join($a[$a.length..0]|%{if(($x=$a[$i++])-le90-and$x-ge65){"$_".ToUpper()}else{"$_".ToLower()}})
.param($a)-join($a[$a.length..0]|%{if(65..90-contains$a[$i++]){"$_".ToUpper()}else{"$_".ToLower()}})
X-inY
ist kürzer alsY-containsX
, und Sie können Ihreif
für den falschen ternären Operator ändern , um 86 Bytes zu erhalten -param($a)-join($a[$a.length..0]|%{("$_".ToLower(),"$_".ToUpper())[$a[$i++]-in65..90]})
Dyalog APL , 12 Bytes
819⌶
ist die Fallfaltfunktionf←
weil sein Name lang ist, weisen wir ihn f zu⊢≠f
Boolescher Wert, bei dem sich Text von Kleinbuchstaben unterscheidetf¨⍨
benutze das (1 bedeutet Großbuchstaben, 0 bedeutet Kleinbuchstaben), um jeden Buchstaben zu falten ...⌽
... des umgekehrten TextesVerarbeitet Nicht-ASCII-Dateien gemäß den Regeln des Unicode-Konsortiums.
quelle
CJam, 22 Bytes
Teste es hier.
quelle
Schläger, 146 Bytes
Schläger ist schlecht in dieser ganzen "Golf" Sache.
Achselzucken Wie immer wäre jede Hilfe bei der Verkürzung sehr dankbar.
quelle
Jolf, 21 Bytes
Probieren Sie es hier aus!
Erläuterung
quelle
(d)is function
... Opfere die Rechtschreibung um des Golfs willen!Perl 6 , 29 Bytes
quelle
C #,
86-85BytesAC # Lambda, wobei die Eingabe und die Ausgabe eine Zeichenfolge ist. Sie können es auf .NetFiddle ausprobieren .
Ich kämpfe , um zu verstehen , warum ich konvertieren kann nicht erreichenchar.ToLower(c)
zuc+32
. Ich hoffe es zu beheben!Dank @PeterTaylor werden 12 Byte gespeichert (
c|32
um 32 zum ASCII-Wert vonc
undc&~32
zu subtrahieren). Das Ergebnis wäre 72 Byte (kann aber auf Nicht-Alpha-Zeichen fehlschlagen).quelle
c|32
anstelle vonc+32
, aber es wird nicht mit Nicht-Alpha-Zeichen funktionieren.PHP, 128 Bytes
Ich kann versuchen, dies weiter zu optimieren, aber ich lasse es einfach so, wie es ist.
quelle
Oktave,
51-50Bytes@(s)merge(isupper(s),b=flip(toupper(s)),tolower(b))
quelle
VIM, 46 Bytes
Es wären drei Bytes
g~G
wenn wir nicht von stdin lesen oder nach stdout schreiben müssten, aber na ja ...Um dies zu testen, führen Sie aus
Dies ist meine erste Einreichung hier, nicht sicher, ob diese Art der Einreichung akzeptabel ist.
quelle
:se ri<cr>C<C-r>"
, müssen dann aber herausfinden, wie die richtigen Buchstaben in Großbuchstaben geschrieben werden.Javascript (mit externer Bibliothek) (224 Bytes)
Haftungsausschluss: Mit einer Bibliothek, die ich geschrieben habe, um C # LINQ zu Javascript zu bringen
quelle
Sed, 113 + 1 = 114 Bytes
Warum? Weil es Spaß macht, das Falsche zu benutzen Werkzeug zu verwenden, um Dinge zu tun: P
Verwendung: Führen Sie aus
sed -rf file
, geben Sie Text ein und drücken Sie Ctrl+ D(EOF senden).Golf gespielt:
Ungolfed:
quelle
Java 7,
221217180 BytesDank des @LeakuNun -Ansatzes werden viele Bytes gespart .
Ungolfed & Testfälle:
Probieren Sie es hier aus.
Ausgabe:
quelle
char[]
.String a="";
und das Änderno+=
in ermöglichen0[i]=
, um Bytes zu speichern, aber Java hat kein Zeichen.toUpperCase()
/ keine.toLowerCase()
Methode, und das Konvertieren von char in String, Verwenden der Methode upper / lower und dann wieder zurück in char würde (viel) mehr erfordern Bytes. Aber zögern Sie nicht, das verknüpfte Konzept zu ändern und sich etwas auszudenken, um diechar[]
Arbeit in weniger Bytes zu erledigen .C
quelle