Herausforderung
¡Wir werden Ausrufezeichen und Fragezeichen für invertierte Freunde setzen!
Einen Körper aus Text Strafen mit der Endung in .
, ?
oder !
, prepend invertiert Fragezeichen, ¿
auf Fragesätze (Sätze der Endung ?
) und invertierten Ausrufezeichen ¡
, auf exclamatory (Sätze der Endung !
). Sätze, die auf enden, .
sind zu ignorieren.
Sätze werden durch Leerzeichen (Leerzeichen, Tabulatoren und / oder Zeilenumbrüche) getrennt und enthalten nur alphanumerische Zeichen, Kommas, Apostrophe und Leerzeichen. Jeder Satz enthält mindestens ein Wort. Das erste Wort jedes Satzes wird garantiert großgeschrieben. Die Eingabe kann mit einem beliebigen Leerzeichen beginnen und enden.
Beispiel
Eingang:
Hello there! What is your name?
My name is Ron. What's your name?
My name is Alex. Nice to meet you!
Nice to meet you to! How was your break?
It was great, I spent all my time code golfing!
What's that?
Wow, you're such a n00b! Here, let me show you.
Ausgabe:
¡Hello there! ¿What is your name?
My name is Ron. ¿What's your name?
My name is Alex. ¡Nice to meet you!
¡Nice to meet you to! ¿How was your break?
¡It was great, I spent all my time code golfing!
¿What's that?
¡Wow, you're such a n00b! Here, let me show you.
Regeln
- Es gelten alle Standardregeln von Code Golf.
- Das Programm mit der kürzesten Anzahl von Bytes gewinnt.
Bonus (17% Rabatt) - Analysieren Sie mehrere Noten
Ein Satz kann auch mit mehreren Ausrufezeichen / Fragezeichen enden. Weisen Sie jedem dieser Zeichen ein umgekehrtes Ausrufezeichen / Fragezeichen zu, um zusätzliche 17% weniger Byte zu erhalten.
Beispiel
Eingang:
I am a man in a can doing a dance?? Maybe...
Doing it for the views??!???!
Ausgabe:
¿¿I am a man in a can doing a dance?? Maybe...
¡¿¿¿¡¿¿Doing it for the views??!???!
Falsche Ausgabe:
¿¿I am a man in a can doing a dance?? Maybe...
¿¿¡¿¿¿¡Doing it for the views??!???!
quelle
Antworten:
Retina ,
393734 BytesProbieren Sie es online aus.
Erläuterung
Dies stimmt mit einem Satz überein, der mit einem Ausrufezeichen oder Fragezeichen endet, und stellt das Interpunktionszeichen vor den Satz. Jetzt wissen wir, dass alle
!
oder?
die unmittelbar von einem Nicht-Leerzeichen gefolgt werden, diejenigen sein müssen, die wir eingefügt haben, da die ursprünglichen Zeichen durch ein Leerzeichen vom nächsten Zeichen getrennt sein sollten.Diese Umschrift Bühne dreht sich alles
!
und?
in¡
und¿
jeweils, sofern sie in einem Spiel gefunden sind\S\b
, die nur für diejenigen gilt wir gerade eingefügt. Ersetzen Sie beide in zwei getrennten Ersetzungen in derselben Byteanzahl, aber ich bevorzuge hier die Semantik einer Transliterationsstufe.quelle
Mathematica 137 Bytes
Nicht die kürzeste, aber es hat Spaß gemacht.
TextSentences
Zerlegt den eingegebenen Text in Sätze undStringPosition
findet die Anfangs- und Endposition jedes Satzes im Text. Die umgekehrte Interpunktion wird nach Bedarf am Anfang jedes Satzes eingefügt.Verwendung unter der Annahme, dass der Text eingegeben wird bei
t
,quelle
Sed, 61 Bytes
Testlauf :
quelle
-r
Flag (GNU) sed, brauchen Sie nicht die zu entkommen(
und)
das sollten Sie 8. sparen brauchen Sie allerdings einen Extrapunkt für die Verwendung dieser nicht-Standardoption hinzuzufügen.Javascript (ES6),
86796663 BytesUngolfed:
Verwendung:
Wird bald eine Bonuslösung implementieren.
Dank an:
@ user81655 , 86 => 79 Bytes
quelle
i=>i.replace(/[A-Z][^.!?]*[.!?]/g,k=>(r=k.slice(-1))<'.'?'¡'+k:r>'.'?'¿'+k:k)
.
.Mathematica,
1019291 Bytesquelle
Python 2, 127,82 (154-17%) Bytes
quelle
36 Zeichen / 53 Bytes
Try it here (Firefox only).
quelle