Tidak seperti kebanyakan bahasa, Python mengevaluasi a<b<c
karena akan dilakukan dalam matematika, sebenarnya membandingkan tiga angka, yang bertentangan dengan membandingkan boolean a<b
untuk c
. Cara yang benar untuk menulis ini dalam C (dan banyak lainnya) adalah a<b && b<c
.
Dalam tantangan ini, tugas Anda adalah untuk memperluas rantai perbandingan dengan panjang sewenang-wenang dari Python / representasi intuitif, hingga bagaimana itu akan ditulis dalam bahasa lain.
Spesifikasi
- Program Anda harus menangani operator:
==, !=, <, >, <=, >=
. - Input akan memiliki rantai perbandingan menggunakan hanya bilangan bulat.
- Jangan khawatir tentang kebenaran dari perbandingan mana pun di sepanjang jalan, ini murni tantangan parsing / sintaksis.
- Masukan tidak akan memiliki spasi putih untuk mencegah jawaban yang meremehkan penguraian dengan membagi pada spasi.
- Namun, output Anda mungkin memiliki ruang tunggal yang mengelilingi baik saja
&&
, atau kedua operator perbandingan dan&&
, atau tidak, tetapi konsisten.
Uji Kasus
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
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
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
sumber
sumber
&&
?Jawaban:
Retina ,
332217 byte-5 byte terima kasih kepada @MartinEnder
Cobalah online!
sumber
1>-2
tidak bekerja untuk membatasi dari kedua ujungnya sekaligus ...Sekam ,
1614 byteMencetak ruang di sekitar masing-masing operator.
Cobalah online!
Penjelasan:
sumber
w
alih-alih;
untuk pendekatan yang lebih langsung untuk menggabungkan string dengan spasiRetina ,
424722 byteBermain golf secara besar- besaran berkat Kevin Cruijssen
Cobalah online!
sumber
(==|!=|<=?|>=?)
dapat\D+
(?<!^|\d)
bisa(?<=\D)
. Juga(?=\d+)
tidak perlu, operator akan selalu diikuti oleh operan, pada titik mana Anda dapat membatalkan+
setelah\D
. Ada juga$&
bukannya$1$2
, dan kemudian byte lebih lanjut dapat disimpan dengan menangkap balik dan melihat ke depan alih-alih menangkap ke depan dan melihat ke belakang.(\D(\d+))(?=\D)
pada baris 1, dan$1&&$2
pada baris dua sudah cukup ( 22 byte ). Coba di sini.V , 37 byte
Cobalah online!
Hexdump:
sumber
Clojure, 88 byte
Perbarui:
subs
alih-alihclojure.string/join
.sumber
J ,
5946 byteCobalah online!
Cara kerjanya dulu
Kami sedang mencari batasan operator. String "Dipenggal" dan "dibatasi" diubah menjadi nol dan yang 0 adalah digit, kemudian digabungkan bersama. Prepend nol untuk mencocokkan panjang.
sumber
Python 2 ,
60595857 byteCobalah online!
sumber
re.sub(r'\D(\d+)(?=\D)',r'\g<0>&&\1',s)
menghemat 1 byte.Arang, 29 byte
Dua formulasi yang sedikit berbeda dari algoritma dasar yang sama. String input diulangi oleh karakter. Ketika digit ditemukan mereka dikumpulkan dalam suatu variabel. Ketika batas antara angka dan operator ditemukan, "&&" tambahan ditambah variabel dicetak dan variabel dihapus. Variabel awalnya diinisialisasi ke spasi sehingga batas pertama tidak memicu ekstra "&&".
sumber
Jelly , 16 byte
Cobalah online!
Penjelasan:
sumber
Java 8, 46 byte
Penjelasan:
Coba di sini.
Penjelasan regex:
Langkah demi langkah contoh penggantian:
sumber
Perl 5 , 47 + 1 (-p) = 48 byte
Cobalah online!
sumber
Ruby , 37 byte
Cobalah online!
sumber
JavaScript (SpiderMonkey) , 43 byte
Cobalah online!
sumber