22. OKTOBER IST INTERNATIONALER CAPS LOCK DAY ! Leider erkennen einige nicht den Ruhm des allmächtigen Feststellers. SIE SAGEN, ES SEHT "OBNOXIOUS" ODER "LIKE SHOUTING" ODER EINIGE UNSINNES. BITTE SCHREIBEN SIE MIR EIN PROGRAMM, DAS NORMALEN TEXT IN "EMPFINDLICHEN" ODER "VERNÜNDLICHEN" TEXT UM DIE BESCHWERDEN DER MENSCHEN ABZUSCHALTEN.
Beschreibung
Die Eingabe und Ausgabe für Ihre Lösung sind Zeichenfolgen, die nur druckbare ASCII-Zeichen enthalten.
Die Eingabezeichenfolge enthält keine oder mehrere Feststelltasten . Ein Caps-Lock-Lauf (kurz CLR) ist wie folgt definiert:
Die CLR darf keine Kleinbuchstaben (
a-z
) enthalten, außer als erstes Zeichen eines Wortes .- Ein Wort im Sinne dieser Herausforderung ist eine Folge von Nicht-Leerzeichen. So
PPCG
,correcthorsebatterystaple
undjkl#@_>00()@#__f-023\f[
sind alle als Wort s.
- Ein Wort im Sinne dieser Herausforderung ist eine Folge von Nicht-Leerzeichen. So
Die CLR muss außerdem mindestens ein Leerzeichen enthalten. daher müssen es mindestens zwei Wörter sein .
Jedes der Wörter in der CLR muss mindestens zwei Buchstaben enthalten (
A-Za-z
).- Beachten Sie, dass sich dies auf die CLR bezieht, die für sich genommen wurde, ohne umgebende Zeichen, die möglicherweise nicht in der CLR enthalten waren. Zum Beispiel ist nicht eine CLR , da die Zeichenfolge selbst hat Wort s mit weniger als zwei Buchstaben.
foO Bar
O B
- Beachten Sie, dass sich dies auf die CLR bezieht, die für sich genommen wurde, ohne umgebende Zeichen, die möglicherweise nicht in der CLR enthalten waren. Zum Beispiel ist nicht eine CLR , da die Zeichenfolge selbst hat Wort s mit weniger als zwei Buchstaben.
CLRs sollten "gierig" analysiert werden - das heißt, Sie sollten immer die längsten möglichen CLRs finden.
Wenn Sie alle CLRs in der Eingabezeichenfolge identifiziert haben, tauschen Sie die Groß- und Kleinschreibung aller Buchstaben in den CLRs aus und geben Sie die resultierende Zeichenfolge aus.
Testfälle
Die erste Zeile wird eingegeben und die zweite ausgegeben. Fettgedruckte Teile der Eingabe sind Teilzeichenfolgen, die als CLRs gelten.
CAPS LOCK IS THE BEST!
caps lock is the best!
I really LOVE pROGRAMMING pUZZLES AND cOde Golf!
I really love Programming Puzzles and Code Golf!
This is a challenge on PPCG. This is a test CASE. TEST
This is a challenge on PPCG. This is a test case. test
LorEM iPSUM DOLoR sIT amet, conSECTETur ADIPISciNG eLIT. MAECENAS iD orci
Lorem Ipsum doloR sIT amet, conSECTETur ADIPIScing Elit. maecenas Id orci
;'>}{/[]'"A*(389971(*(#$&B#@*(% c'>#{@D#$! :,>/;[e.[{$893F
;'>}{/[]'"a*(389971(*(#$&b#@*(% C'>#{@d#$! :,>/;[e.[{$893F
iT'S cAPS lOCK DAY!!! cELebraTE THis WONDERFUL key
It's Caps Lock day!!! Celebrate this WONDERFUL key
aBcDE fGHIj KLmNO pQrST (uVwXY) ZZ___Zz__Z
aBcde Fghij KLmno PqrST (uVwxy) zz___zz__Z
#aA# aA
#aA# aA
Regeln
Sie können davon ausgehen, dass die Eingabe niemals zwei oder mehr Leerzeichen in einer Zeile und niemals ein führendes oder nachfolgendes Leerzeichen enthält.
20% Bonus (multiplizieren Sie Ihre Codelänge mit 0,8), wenn Ihr gesamter Code eine CLR ist. ;) (meistens nur zum Spaß, da es unwahrscheinlich ist, dass die gewinnende Einreichung diesen Bonus hat)
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes.
PPCG. T
enthält ein Leerzeichen)Antworten:
CJam,
100868381 BytesProbieren Sie diese Geige im CJam-Interpreter aus oder überprüfen Sie alle Testfälle auf einmal .
Algorithmus
Identifizieren Sie die längste mögliche CLR, die mit dem ersten Zeichen beginnt.
Wenn es existiert, tauschen Sie die Schutzhülle aus, drucken Sie es aus und entfernen Sie es vom Anfang der Zeichenfolge.
Entfernen Sie andernfalls ein einzelnes Zeichen vom Anfang der Zeichenfolge und drucken Sie es unverändert aus.
Wenn noch weitere Zeichen übrig sind, kehren Sie zu Schritt 1 zurück.
Wie es funktioniert
quelle
Perl,
968280 BytesBesteht alle Tests. Übernimmt Eingaben von
STDIN
, druckt aufSTDOUT
.Wie es funktioniert:
Richten Sie einen passenden regulären Ausdruck (
$y
) einstimmen Sie mit mehreren Instanzen von durch Leerzeichen getrennten Zeichenfolgen überein
$y
, mit denens///
die Groß- / Kleinschreibung invertiert wirdIch bin sicher, es gibt Raum für Verbesserungen. Wenn es eine Möglichkeit gibt, den gesamten
join-map-split
Deal loszuwerden, besteht möglicherweise immer noch die Möglichkeit, sich für den Bonus zu qualifizieren :)quelle
a-z
anstelle von verwenden[:lower:]
. Wird-pe
normalerweise als 1 Byte gezählt und die einfachen Anführungszeichen als 0 Byte.Javascript, 193
Erläuterung:
quelle