Ambil sebuah array yang terdiri dari angka atau array, output jika hanya berisi 2
s.
Output harus berupa nilai truey atau falsey (Maaf jika ini menghancurkan jawaban)
Kasus Uji Kebenaran
[2]
[2,2]
[[2],[2,2],2]
[]
[[],[]]
Kasus Uji Falsey
[1]
[22]
[2,2,2,1]
[[1,2],2]
Celah Standar Dilarang.
Aturan IO standar berlaku.
Kode-golf, byte Paling Sedikit menang!
[[2]]
tidak tidak mengandung dua.Jawaban:
MATL , 3 byte
Cobalah online!
Secara teknis, ini bisa saja
Karena array yang mengandung elemen nol adalah palsu, tetapi ini tampaknya murah.
sumber
2=
gagal untuk matriks kosong, atau?2=p
berfungsi dengan baik. Versi yang lebih pendek pada akhirnya,,2=
tidak. Juga, "kasus tepi aneh" adalah dua dari kasus uji. :-)Python 2 ,
4340 byteCobalah online!
Pada saat memposting jawaban ini, masih diperbolehkan per konsensus meta ini untuk menghasilkan output melalui melempar kesalahan / tidak melempar kesalahan. Karenanya jawaban ini pada 26 byte adalah valid:
Cobalah online!
sumber
all
, apa pun selain kesalahan adalah benar.Prolog (SWI) ,
4333 byteSaya mencium ... rekursi .
Terima kasih kepada Emigna dan Leaky Nun karena telah menghemat 10 byte!
Kode
Cobalah online! atau Verifikasi semua kasus uji!
Penjelasan:
Untuk pengguna non-Prolog, daftar diformat dengan cara sebagai berikut:
[Head | Tail]
.Ini
Head
adalah elemen pertama dari daftar, dan ekor adalah daftar yang tersisa. Uji di sini! . Kasus penting di sini adalah bahwa ekor daftar dengan 1 elemen sama dengan[]
. Anda dapat mengujinya di sini .sumber
Jelly , 4 byte
Cobalah online!
Bagaimana itu bekerja
sumber
Oktaf, 13 byte
Verifikasi semua kasus uji.
Ini adalah fungsi anonim mengambil satu argumen input
x
,. Ini mengurangi2
dari semua elemen, memeriksa apakah ada elemen non-nol. Ini meniadakan output untuk mendapatkantrue
untuk kasus-kasus di mana semua nilai adalah nol.Ini berfungsi karena
x-2
berfungsi untuk matriks dari semua ukuran, termasuk matriks kosong[]
,.x-2
akan cukup jika tidak ada matriks kosong di input.sumber
Matematika , 28 byte
Cobalah online!
sumber
{0}
diizinkan; itu akan menghasilkan false positive.Retina ,
1310 byteTerima kasih kepada Kritixi Lithos untuk menghemat 3 byte.
Cobalah online!
sumber
05AB1E , 4 byte
Cobalah online!
Penjelasan
sumber
2
bekerjaY
?2
berfungsi juga. Saya hanya suka fakta bahwa tidak ada angka di dalamnya :)JavaScript (ES6),
22192322 byteMenguji
sumber
Mathematica, 15 byte
Ini juga berfungsi dalam Matematika. Cobalah online!
sumber
APL (Dyalog) , 5 byte
Cobalah online!
Penjelasan
sumber
Mathematica, 24 byte
Fungsi murni kembali
True
atauFalse
. SetelahFlatten
memasukkan array bersarang dan memanggilnyat
,Cases[t,2]
mengembalikan daftar elemen yang cocok dengan "pola"2
, dan==t
memeriksa apakah itu seluruh daftar.Mathematica, 29 byte
Tidak sesingkat, tetapi lebih menyenangkan. Mulai dari input
#
, dua aturan penggantian diterapkan hingga hasilnya berhenti berubah (//.
): pertama, semua2
diganti oleh{}
s; dan kemudian daftar mana pun yang entri semua set kosong ({{}..}
) diganti (berulang kali) dengan set kosong. Jika sisanya adalah set kosong (=={}
), kami menang.sumber
Haskell , 36 byte
Fungsi anonim, mengambil a
String
dan mengembalikan aBool
.Digunakan sebagai
(all((==2).fst).(reads=<<).scanr(:)[]) "[2,2,2,1]"
Cobalah online!
Bagaimana itu bekerja
scanr(:)[]
menghasilkan daftar semua sufiks string.(reads=<<)
mencoba mengurai angka di awal setiap sufiks, menggabungkan keberhasilan menjadi daftar tupel(n,restOfString)
.all((==2).fst)
memeriksa apakah semua angka yang diuraikan adalah2
.sumber
not.all(`elem`"2,[]")
?22
.Python 2 , 38 byte
Cobalah online!
Dibawa dalam string tanpa spasi, menghasilkan bool.
Cek apakah menghapus semua karakter
'[],2'
daril
memberikan string kosong. Juga periksa bahwa22
itu bukan substring - jika ya, inputl
digunakan sebagai pengganti string kosong untuk membandingkan dengan hasil penghapusan, dan yang selalu gagal.sumber
Ruby,
282322 byte - 5 byte disimpan oleh GBMeskipun "rata" sangat panjang, masih lebih pendek daripada solusi berbasis regex atau hal-hal rekursif yang harus menyelamatkan kesalahan dalam kasus dasar. Namun, gabungan set dan array bawaan Ruby, terkadang sangat berguna.
sumber
[]
atau[[],[]]
.[2,*x].flatten.uniq==[2]
sedikit lebih panjangx.flatten-[2]==[]
masih lebih pendek. Terima kasih atas tipnya!JavaScript (ES6), 26 byte
Uji kasus
Tampilkan cuplikan kode
sumber
f=
karena Anda menyebutnya.MATL , 4 byte
Cobalah online!
Kerusakan:
Yah, kalah besar . Tapi saya menjaga ini, karena saya cukup senang saya mengatur ini sendiri (walaupun tugasnya sangat sederhana).
sumber
R, 28 byte
unlist(x)
mengubah daftar (bersarang) menjadi vektor. Kemudian2
dikurangi dari vektor itu.any
mengkonversi (dengan peringatan) numerik menjadi logis dan memeriksa jika adaTRUE
. Ini terbalik dengan!
dan keluaran.Ini berfungsi dengan daftar bersarang karena
unlist
secara default bekerja secara rekursif untuk membatalkan daftar semua entri daftar dari daftar awal.Ini juga berfungsi dengan daftar kosong, karena
unlist(list())
menjadinumeric()
, vektor numerik kosong. Paksaan denganany
membuatnyalogical()
, yang diartikan sebagaiFALSE
olehany
, dan kemudian dibalikTRUE
oleh!
.sumber
pryr::f(!any(unlist(x)-2))
menghemat beberapa byte.all(unlist(x)==2)
juga.any(unlist(x)-2)
yang mengembalikan konsistenTRUE
jika ada nilai non-2 dalam susunan rata dan konsistenFALSE
jika semua nilainya2
...TRUE
dianggap sebagai falsey: /Python 3 , 55 byte
Tidak selingkuh Menggunakan daftar bersarang sebagai input.
Cobalah online!
sumber
int!=type(x)and
Jelly , 4 byte
Cobalah online!
Sedikit berbeda dari algoritma Leaky.
Penjelasan:
sumber
Retina ,
1411 byteCobalah online!
sumber
\W
tampaknya bukan kriteria yang baik:2.2
adalah angka yang tidak cocok2
, namun saya kira itu akan cocok05AB1E , 4 byte
Cobalah online!
sumber
JavaScript (ES6),
535048 byteDisimpan 5 byte, terima kasih kepada @Shaggy!
Kasus uji:
sumber
f([])
danf([[],[]])
harus jujur!c
bukanc==""
.05AB1E , 7 byte
Cobalah online! atau Coba Semua Tes!
sumber
Java 8,
1265527 bytePort dari jawaban Retina @KritixiLithos yang menakjubkan , tidak termasuk
^...$
, karenaString#matches
selalu cocok dengan seluruh String dan menambahkan^...$
secara implisit.-2 byte terima kasih kepada Jakob untuk mengingatkan saya tentang
^...$
tidak perlu untukString#matches
.Coba di sini.
sumber
boolean c(java.util.List l){return(l+"").matches("^(\\W|2\\b)+$");}
akan berhasil, bukan? Hanya ingin menunjukkan hal itu jika Anda berencana untuk golf lebih jauh daftar solusi.^
dan$
di regex, karenaString.matches
hanya menguji terhadap seluruh string.^...$
. Lupa tentang itu, meskipun saya sudah sering menggunakannya di masa lalu ..Python 2 ,
444342 byteDibawa
x
sebagai representasi string dari daftar. Ini juga mengasumsikan seperti pada contoh representasi tidak memiliki spasi.Cobalah online!
Penjelasan
Keduanya mengambil karakter dalam representasi string dari input dan menentukan apakah ada karakter selain
[], 2
di dalamnya. Mereka melakukan ini dengan melakukan casting ke set dan membandingkan dengan set hanya karakter tersebut. Namun ini gagal jika kita memiliki angka selain 2 yang hanya memiliki angka 2 (misalnya 22 atau 222), untuk menambal kasus ini kita mengalikan string yang digunakan untuk membuat set dengan negasi apakahx
mengandung atau tidak"22"
. Jika berisi itu ini akan menjadi set kosong, jika tidak maka akan sama seperti sebelumnya.sumber
lambda x:set(x)==set("[], 2")
?[22]
[]
lambda x:set(x)<=set("[],2"*-~-("22"in x))
untuk -1Ohm, 6 byte
Penggunaan
CP-437
penyandian.Penjelasan:
sumber
PHP, 46 byte
sumber
$_GET
sebagai string?<?=!preg_match('/:"(?!2")/',$argn);
dan input adalah representasi string dari array serial - 11 BytesPHP <7.0, 29 Bytes
Input sebagai array string yang disandikan JSON
PHP <7.0, 42 Bytes
gunakan fungsi ereg yang sudah tidak digunakan lagi
PHP, 50 Bytes
mencetak 1 untuk true dan nothing for false
-1 Byte untuk penghapusan bijaksana lainnya
!
atau + 1 Byte untuk true 1, false 0 tambahkan
+
sebelumnya!
Cobalah online!
sumber
$r
variabel:<?array_walk_recursive($_GET,function($i){$i-2&¨})?>1
.Pyth, 6 byte
Sangat mirip dengan jawaban CJam saya. Saya masih baru di Pyth, jadi tolong beri tahu saya jika ada yang bisa saya mainkan.
Penjelasan:
sumber