Im Gegensatz zu den meisten Sprachen wertet Python a<b<c
wie in der Mathematik aus und vergleicht die drei Zahlen im Gegensatz zum Vergleich des Booleschen a<b
mit c
. Der richtige Weg, dies in C (und vielen anderen) zu schreiben, wäre a<b && b<c
.
Bei dieser Herausforderung besteht Ihre Aufgabe darin, solche Vergleichsketten beliebiger Länge von der Python / intuitiven Darstellung auf die Art und Weise zu erweitern, wie sie in anderen Sprachen geschrieben werden.
Spezifikationen
- Ihr Programm muss die Operatoren behandeln :
==, !=, <, >, <=, >=
. - Die Eingabe enthält Vergleichsketten, die nur Ganzzahlen verwenden.
- Machen Sie sich keine Sorgen über die Richtigkeit der Vergleiche auf dem Weg, dies ist eine rein parsende / syntaktische Herausforderung.
- Die Eingabe enthält kein Leerzeichen, um Antworten zu verhindern, die das Parsen durch Aufteilen auf Leerzeichen trivialisieren.
- Ihre Ausgabe kann jedoch einen einzelnen Raum haben, der entweder nur die
&&
's oder sowohl die Vergleichsoperatoren als auch die&&
' s oder keine umgibt , aber konsistent ist.
Testfälle
Input Output
---------------------------------------------------------------
3<4<5 3<4 && 4<5
3<4<5<6<7<8<9 3<4 && 4<5 && 5<6 && 6<7 && 7<8 && 8<9
3<5==6<19 3<5 && 5==6 && 6<19
10>=5<7!=20 10>=5 && 5<7 && 7!=20
15==15==15==15==15 15==15 && 15==15 && 15==15 && 15==15
Dies ist Code-Golf , also gewinnt der kürzeste Code in Bytes !
code-golf
parsing
conversion
syntax
code-golf
sequence
primes
code-challenge
geometry
optimization
code-golf
graph-theory
code-golf
number-theory
primes
integer
code-golf
source-layout
cops-and-robbers
code-golf
source-layout
cops-and-robbers
code-golf
sequence
primes
integer
code-golf
math
number-theory
primes
rational-numbers
code-golf
math
sequence
number-theory
primes
code-golf
string
code-golf
math
combinatorics
permutations
restricted-complexity
code-golf
array-manipulation
code-golf
number
sequence
code-golf
number
sequence
code-golf
binary-matrix
code-golf
math
tips
javascript
algorithm
code-golf
string
code-golf
number
sequence
code-golf
math
arithmetic
parsing
code-golf
number
sequence
primes
code-golf
string
ascii-art
geometry
integer
code-golf
geometry
code-golf
number
array-manipulation
code-golf
math
geometry
code-golf
number
sequence
arithmetic
integer
code-golf
string
kolmogorov-complexity
code-golf
number
code-golf
number
chess
code-golf
sequence
decision-problem
subsequence
code-golf
math
number
primes
code-golf
primes
permutations
code-golf
integer
probability-theory
statistics
code-golf
string
code-golf
sequence
decision-problem
parsing
board-game
code-golf
binary
graph-theory
code-golf
board-game
classification
tic-tac-toe
code-golf
ascii-art
polyglot
code-golf
date
code-golf
geometry
Maltysen
quelle
quelle
&&
?Antworten:
Netzhaut ,
332217 Bytes-5 Bytes dank @MartinEnder
Probieren Sie es online aus!
quelle
1>-2
es nicht funktioniert, von beiden Seiten gleichzeitig zu begrenzen ...Schale ,
1614 BytesDruckt ein Leerzeichen um jeden Operator.
Probieren Sie es online aus!
Erläuterung:
quelle
w
statt;
für einen direkteren Ansatz zum Verbinden von Strings mit Leerzeichen verwendenRetina ,
424722 BytesDank Kevin Cruijssen massiv Golf gespielt
Probieren Sie es online aus!
quelle
(==|!=|<=?|>=?)
kann sein\D+
(?<!^|\d)
kann sein(?<=\D)
. Auch das(?=\d+)
ist unnötig, dem Operator folgt immer ein Operand, an welchem Punkt Sie den+
nach dem ablegen können\D
. Es gibt auch$&
statt$1$2
, und dann kann ein weiteres Byte gespeichert werden, indem Sie nach hinten erfassen und nach vorne schauen, anstatt nach vorne zu erfassen und nach hinten zu schauen.(\D(\d+))(?=\D)
in Zeile 1 und$1&&$2
in Zeile zwei ist ausreichend ( 22 Bytes ). Probieren Sie es hier aus.V , 37 Bytes
Probieren Sie es online aus!
Hexdump:
quelle
Clojure, 88 Bytes
Update:
subs
stattclojure.string/join
.quelle
J ,
5946 BytesProbieren Sie es online aus!
Wie es früher funktioniert hat
Wir suchen nach Operatorgrenzen. "Enthauptete" und "verkürzte" Zeichenfolgen werden in Nullen und Einsen umgewandelt, wobei Nullen Ziffern sind, und dann zusammen xored. Stellen Sie Null entsprechend der Länge voran.
quelle
Python 2 ,
60595857 BytesProbieren Sie es online aus!
quelle
re.sub(r'\D(\d+)(?=\D)',r'\g<0>&&\1',s)
spart 1 Byte.Holzkohle, 29 Bytes
Zwei leicht unterschiedliche Formulierungen desselben Basisalgorithmus. Die Eingabezeichenfolge wird durch Zeichen iteriert. Wenn Ziffern gefunden werden, werden sie in einer Variablen gesammelt. Wenn eine Grenze zwischen einer Zahl und einem Operator gefunden wird, wird ein zusätzliches "&&" plus der Variablen gedruckt und die Variable gelöscht. Die Variable wird anfänglich mit einem Leerzeichen initialisiert, damit die erste Grenze nicht das zusätzliche "&&" auslöst.
quelle
Gelee , 16 Bytes
Probieren Sie es online aus!
Erläuterung:
quelle
Java 8, 46 Bytes
Erläuterung:
Probieren Sie es hier aus.
Regex Erklärung:
Schritt für Schritt Beispiel für den Austausch:
quelle
Perl 5 , 47 + 1 (-p) = 48 Bytes
Probieren Sie es online aus!
quelle
Ruby , 37 Bytes
Probieren Sie es online aus!
quelle
JavaScript (SpiderMonkey) , 43 Byte
Probieren Sie es online aus!
quelle