Original: https://james-iry.blogspot.co.at/2009/05/brief-incomplete-and-mostly-wrong.html
Alain Colmerauer entwarf die logische Programmiersprache Prolog. Sein Ziel war es, eine Programmiersprache zu schaffen, die so intelligent ist wie ein zweijähriges Kind. Um zu beweisen, dass er sein Ziel erreicht hatte, präsentierte er ein Prolog-Programm, das alle Anfragen mit "Nein" beantwortet.
Frag mich was!
? -(Natürlich hat er das nicht getan.) Ihre Aufgabe ist es, ein Programm zu erstellen, das intelligenter ist als das Programm von Alain Colmerauer. Dies muss nicht in Prolog sein.
Besonderheiten
Wenn die Eingabe mit
?
mindestens einem endet und diesen enthält,
, geben Sie den Text vom letzten,
bis zum letzten zurück?
.Andernfalls, wenn die Eingabe mit
?
return endetNo
.Sonst kehre zurück
Yes
.
Regeln
- Keine Standardlücken.
- Die Eingabe / Ausgabe erfolgt über unsere Standardeingabe- / Ausgabemethoden.
- Ihr Programm muss mindestens 1 Anfrage annehmen.
- Sie sollten die bearbeitete Anfrage ausgeben.
- Die
Yes
undNo
‚s case-sensitiv sind in den Beispielen. - Wenn die Eingabe a enthält
?
, wird garantiert, dass die Eingabe nur eine enthält?
und immer das letzte Zeichen ist. - Die Eingabe wird immer eine Phrase / ein Satz sein. Dieser Satz / Satz enthält nie nur die Zeichen
,
und?
, zum Beispiel,
,?
und,?
sind nicht gültig Eingänge. (Obwohl Submissions es trotzdem implementieren könnten, da die Phrase / der Satz in diesen Fällen eine leere Zeichenfolge ist.) - Außerdem wird die Eingabe niemals mit enden
,?
. - Wenn unmittelbar nach dem letzten
,
oder unmittelbar vor dem Leerzeichen Leerzeichen stehen?
, sollten diese in die Ausgabe aufgenommen werden.
Beispiele
Hmm. -> Yes
Alright, -> Yes
Ask me anything! -> Yes
Ask me a question, please! -> Yes
Are you okay? -> No
No? -> No
Hey,does this program work? -> does this program work
Quotes in the following test cases should not be outputted.
They are used as a delimiter here.
Okay, so this does work ? -> " so this does work "
Please, add, a, test, case, containing, multiple, commas? -> " commas"
Wertung
Dies ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes.
?
, es nur eines gibt und es immer das letzte Zeichen ist?You are guaranteed that if the input includes a ?, the input will only have one ? and it will always be the last character.
Daher sind diese Testfälle nicht erforderlich.ends with ,?
eine gültige Eingabe?Antworten:
05AB1E ,
2019 Bytes-1 Byte dank @Grimy .
Probieren Sie es online aus oder überprüfen Sie alle Testfälle .
Erläuterung:
Sehen Sie diese 05AB1E Spitze von mir (Abschnitt Wie das Wörterbuch benutzen? ) Zu verstehen , warum
”€–”
ist"Not"
und”…Ü
ist"Yes"
.quelle
Python 3 , 62 Bytes
Probieren Sie es online aus!
Der Ausdruck
~(','in s)*('?'in s)
ausgewertet0
(dh'Yes'
) , wenn die Zeichenfolge enthält keine'?'
, sonst-1
(dh'No'
) , wenn die Zeichenfolge eine nicht enthält','
, und ansonsten-2
(dh der letzte kommagetrennten Abschnitt der Zeichenfolge das letzte Zeichen ausschließlich).quelle
JavaScript (ES6),
5352 ByteProbieren Sie es online aus!
Kommentiert
quelle
Holzkohle ,
2322 BytesProbieren Sie es online aus! Der Link führt zur ausführlichen Version des Codes. Bearbeiten: 1 Byte dank @KevinCruijssen gespeichert. Erläuterung:
Enthält die Zeichenfolge
?
s?Enthält es irgendwelche
,
s?Teilen Sie die Zeichenfolge auf
,
s und nehmen Sie die letzte.Löschen Sie das
?
und geben Sie das Ergebnis aus.Wenn keine
,
s vorhanden sind, wird ausgegebenNo
.Wenn keine
?
s vorhanden sind, wird ausgegebenYes
.quelle
Print(Join(Split(Pop(Split(q, ",")), "?"), w)
zuPrint(Minus(Pop(Split(q, ",")), "?");
Minus
getan hat. Außerdem war ich mit mir zufrieden, zwei Separatoren gerettet zu haben.Perl 5 +
-plF/,|\?/
, 25 BytesProbieren Sie es online aus!
quelle
Pyth , 25 Bytes
Probieren Sie es online aus!
quelle
Zsh , 51 Bytes
Probieren Sie es online aus!
Ein Byte kann gespeichert werden, wenn
ends with,?
und ähnliche ungültig sind.quelle
Stax , 16 Bytes
Führen Sie es aus und debuggen Sie es
quelle
Netzhaut ,
3228 Bytes-4 Bytes mit Tipps von @Neil .
Probieren Sie es online aus.
Erläuterung:
quelle
K
Bühne von Retina 1 eine eingebaute Bedingung hat? Ich habe nicht. Es könnte Ihnen wahrscheinlich ein paar Bytes ersparen.K
und bedingt&
, um ganz ehrlich zu sein. Ich weiß, wie manK
einen Regex verwendet, um so übereinzustimmen , aber wie kombiniere ich ihn mit der Bedingung, um ein ternäres if-else für dasYes
/ nachzuahmenNo
?&
, was mich überrascht hat, und du kannst einfach an einer Schnur oder besser noch an einem Charakter übereinstimmen, da du weißt, dass jeder?
am Ende sein muss.IBM / Lotus Notes-Formel, 79 Byte
Kein TIO für die Formel, also ...
quelle
Python 3 ,
9887 Bytes-9 Bytes dank ElPedro
Probieren Sie es online aus!
Dies wurde von anderen Antworten deutlich übertroffen, aber ich versuche ein bisschen mehr, in Python Golf zu spielen. Beratung wird geschätzt!
quelle
if
Anweisungen stattdessen auf eine Listenindizierung verkürzen und dann die zu verwendenden Bedingungen verkürzen und dannin
alles wegwerfen, weil es zu nahe an einem liegt bestehende Antwortif x.count(",")
mitif~x.find(",")
, speichern ein Byte.str.find
wird ausgewertet,-1
wenn die Zeichenfolge nicht gefunden wird. Wenn Sie dies mit dem unären Operator ergänzen, ergibt sich0
genau dann, wenn der Teilstring nicht vorhanden ist. Alternativ können Sie esif","in x
durch 4 Bytes weniger ersetzen .PHP , 58 Bytes
Probieren Sie es online aus!
quelle
Rot , 78 Bytes
Probieren Sie es online aus!
quelle
Perl 6 , 40 Bytes
Probieren Sie es online aus!
quelle
Gema , 34 Zeichen
Probelauf:
Probieren Sie es online aus! / Probiere alle Testfälle online aus!
quelle
Japt , 23 Bytes
Versuch es
quelle
C # (Visual C # Interactive Compiler) , 72 Byte
2 Bytes dank @someone gespeichert
Probieren Sie es online aus!
quelle
SkipLast(1) -> Trim('?')
zum -??? Bytes soweit ich sehe (alle meine Versuche, die Differenz zu berechnen, führen zu unterschiedlichen Zahlen)Python 2 ,
666362 BytesProbieren Sie es online aus!
-3 nach dem Erkennen der aktualisierten Klarstellung "Die Eingabe hat nur eine? Und es wird immer das letzte Zeichen sein."
-1 mit Dank an @ChasBrown
Grundsätzlich eine Portierung meiner Lotus Notes Antwort . Seltsamerweise hilft die oben erwähnte Klarstellung den Notes nicht bei der Beantwortung, da sie
@Ends
4 Bytes billiger ist als@Contains
. Wenn es nur eine@In
Funktion gäbe ...quelle
rfind
.Gelee , 20 Bytes
Probieren Sie es online aus!
quelle
C ++ (gcc) ,
120 bis118 ByteFunktionsähnliches Makro:
Probieren Sie es online aus!
-2 Bytes dank @ceilingcat
quelle