/^[-~]*x$/
Bewerten Sie einen Ausdruck, der mit dem regulären Ausdruck übereinstimmt , x
und geben Sie einen String aus, der mit dem regulären Ausdruck übereinstimmt /^-?x[+-]\d+$/
.
Beispielsweise wird die Zeichenfolge als -~x
ausgewertet x+1
, während die Zeichenfolge als -~-x
ausgewertet -x+1
wird und die Zeichenfolge als -~-~--x
ausgewertet wird x+2
.
Wir beginnen x
mit der Zeichenfolge und werten sie von rechts nach links aus. -
negiert den Ausdruck und ~
konvertiert y
in -y-1
.
Testfälle:
x x+0
~x -x-1
-~x x+1
~-~x -x-2
-~-~x x+2
--~~x x+0
~-x x-1
-~-x -x+1
Das ist Code-Golf . Kürzeste Antwort in Bytes gewinnt.
Das Eingabe- / Ausgabeformat ist streng. Das "x"
ist obligatorisch.
x+010
stattx+10
für ausgeben-~-~-~-~-~-~-~-~-~-~x
? Es entspricht dem zweiten regulären Ausdruck.~
noch nichts bekannt istAntworten:
Python 2 ,
424139 BytesProbieren Sie es online!
quelle
Netzhaut ,
4744 BytesProbieren Sie es online! Bearbeiten: 3 Bytes dank @MartinEnder gespeichert. Erweiterung:
Löschen Sie Paare benachbarter Duplikate.
Zählen Sie die Anzahl von
~
s, die uns die Größe des Terms gibt.Wenn das erste Zeichen ein
~
ist, sollte der Begriff negativ sein.Wenn die Anzahl von
~
s und-
s ungerade ist,x
sollte das negativ sein.quelle
JavaScript, 59 Bytes
Probieren Sie es online!
quelle
-
in einer Reihe enthalten. (ie--~-~x
)Perl 5 , 75 + 1 (-n) = 76 Bytes
Probieren Sie es online!
quelle
C (gcc) , 69 Bytes
Probieren Sie es online!
-1 Byte dank @ThePirateBay
quelle
Java 8, 186 Bytes
Auf jeden Fall Raum für Verbesserungen.
Erläuterung:
Probieren Sie es hier aus.
quelle