Lesen Sie zwei Zeichenfolgen aus stdin
. Wird
ausgegeben, Yes
wenn ein String eine gedrehte Version des anderen ist.
Sonst AusgabeNo
Testfälle
Eingang
CodeGolf GolfCode
Ausgabe
Yes
Eingang
stackexchange changestackex
Ausgabe
Yes
Eingang
stackexchange changestack
Ausgabe
No
Eingang
Hello World
Ausgabe
No
Stackexchange Stackchangeex
zurückkehren?No
. Die Drehung ist eine Verschiebung, wie diese LED-BildlaufzeichenAntworten:
APL (28)
Nimmt Eingaben in zwei Zeilen vor.
Erläuterung:
A←⍞
: Lies eine Eingabezeile und speichere sie in A⌽∘A¨⍳⍴A
: A für jedes x in [1. Länge A] um x drehen. Gibt eine Liste, dhestT stTe tTes Test
(⊂⍞)∊
: Lesen Sie eine weitere Eingabezeile und prüfen Sie, ob sie in dieser Liste enthalten ist.1+
: addiere eins dazu und gib 1, wenn die Saiten nicht gedreht wurden und 2, wenn sie gedreht wurden'No' 'Yes'[
...]
: Wählen Sie entweder das erste oder das zweite Element aus der Liste aus,'No' 'Yes'
je nachdem, ob die Zeichenfolgen gedreht wurden oder nicht.quelle
Ruby
4941Edit: gets.split durch $ * ersetzt
quelle
$*
ist argv, wenn die Frage angegeben iststdin
.Python, 70 Bytes
Testen ...
quelle
stdin
denen diese Lösung nicht besteht.print ['No
Python 70 Zeichen
Danke an Gnibbler für den Slice-Trick.
quelle
nn nfn
, bekommst duYes
, was falsch ist.<>
durch-
wie in auch zur Folge haben wird ,0
wenn sie gleich lang sind.J, 47
quelle
Entsprechend der Spezifikation (gleiche Schnurlängen):
Perl,
4243 ZeichenWenn Zeichenfolgen unterschiedlicher Größe zulässig sind, lautet die Lösung:
Perl, 47 Zeichen
rbo
quelle
nn nfn
, bekommst duYes
, was falsch ist.Golfscript, 31
Diese eine Länge zuerst überprüfen, so sollte es wie erwartet funktionieren.
quelle
:)
und=)
+1 für sehr glücklichen CodeJ, 57
Beispielgebrauch:
quelle
Windows PowerShell, 76
quelle
JavaScript, 51
JavaScript hat keinen kanonischen Host, daher wird diese Antwort in Abhängigkeit von zwei Argumenten geschrieben. Die Punktzahl steigt auf 60, wenn wir JS 1.7-Features (Ausdrucksschließungen) nicht zulassen.
In der SpiderMonkey-Shell wäre dies (für eine Punktzahl von 71):
quelle
=>
Funktionsnotation verwenden;)Python,
6663Eine andere Lösung in 69 char
quelle
print'YNeos'[a!=(2*a).replace(b,"")::2]
J 84
quelle
JavaScript (120 Zeichen)
Ausgabe:
quelle
Ruby, 58 (62) Zeichen
Diese Lösung setzt voraus, dass die Eingabe nur alphanumerische Zeichen enthält (eigentlich ist alles in Ordnung, was in einem regulären Ausdruck keine besondere Bedeutung hat).
Eine Lösung, für die diese Einschränkung nicht gilt, ist 4 Zeichen länger
quelle
Python, 71
quelle
nn nfn
, bekommst duYes
, was falsch ist.PHP, 61
quelle
Rubin, 41
quelle
puts gets =~ /^(.+)(.*) \2\1$/ ?:Yes: :No
- erhöht es auf 41 Zeichen.Haskell (
9896 Zeichen)quelle
Q (
5043 Zeichen)quelle
Scala 78
Es ist eine Schande über die Größenüberprüfung, ohne sie fällt die Zählung auf 54
quelle
"""val b=readLine split " " print(b(0).sorted==b(1).sorted)""".length
ergibt 56Bash 56
quelle
GolfScript, 25 Bytes
Wie es funktioniert
quelle
CJam, 21 Bytes
Probieren Sie es online!
quelle
0
/1
stattNo
/ zurückzugebenYes
.Lua 115 Zeichen
quelle
C-Programm - 146
quelle
PHP, 82 Zeichen
quelle
Perl, 123 Zeichen
quelle
Rubin,
3037Eine Version, die "true" und "false" anstelle von "yes" und "no" ausgibt:
Beide arbeiten mit unterschiedlich langen Saiten (im Gegensatz zu den alten)
quelle
Python 2, 86 Zeichen
quelle
Perl (nur eine schnelle Lösung)
Ein Fix für die Gummistiefel-Lösung. Als neuer Benutzer kann ich noch keinen Kommentar abgeben. Ich werde einfach eine neue Antwort posten.
Da die erwähnte Methode einen regulären Ausdruck verwendet, der aus Benutzereingaben besteht, ist es wie folgt möglich, eine kleine Regex-Injektion durchzuführen:
Das Update besteht darin, \ Q (auch als Quotemeta bekannt) zu verwenden:
Der Code selbst könnte mit 'say' weiter verkürzt werden, dies ist jedoch eine Übung für den Leser :)
quelle
print+(qw/yes no/)[
wahrscheinlichprint qw(yes no)[
zwei Zeichen kürzer schreiben .