Seperti yang mungkin disadari oleh beberapa orang belakangan ini, saya meninggalkan pengembangan Braingolf karena membosankan dan tidak terinspirasi, dan beralih ke 2Col yang sedikit lebih menarik, dan tidak dirancang untuk menjadi bahasa golf.
Fitur pendefinisian 2Col adalah bahwa setiap baris kode harus panjangnya tepat 2 karakter, tidak termasuk baris baru. Ini berarti bahwa panjang dari program 2Col selalu dapat dihitung sebagai di 3n-1
mana n
jumlah baris dalam program.
Jadi inilah tantangan saya: Diberikan kode 2Col sebagai string, hasilkan kebenaran jika kode 2Col valid (Setiap baris persis 2 karakter dan sesuai dengan 3n-1
rumus), dan falsey sebaliknya.
Memasukkan
Input harus diambil sebagai string tunggal, atau array karakter.
Keluaran
Nilai sebenarnya jika string input adalah tata letak yang valid, dan nilai falsey sebaliknya.
Kode Anda harus konsisten dengan nilai kebenaran / kepalsuan yang digunakannya
Testcases
======
F!
$^
----
truthy
======
======
*8
+1
Sq
----
truthy
======
======
nop
xt
----
falsey
======
======
+1
+1
#^
----
falsey
======
======
<empty string>
----
falsey
======
======
ye
----
truthy
======
======
no<space>
----
falsey
======
======
test
----
falsey
======
======
puzzle
----
falsey
======
Mencetak gol
Ini adalah kode-golf sehingga byte paling sedikit menang!
sumber
true
falsey danfalse
truthypuzzle
. Ini akan membuat solusi yang melakukan seluruh panjang modulo string 3, kemudian dinegasikan (yang bekerja untuk semua kasus uji saat ini) tidak valid.Jawaban:
Brachylog (2), 4 byte
Cobalah online!
Program lengkap (karena ini adalah masalah keputusan ; Program lengkap Brachylog menampilkan
false.
jika ada kegagalan pernyataan,true.
tanpa satu).Penjelasan
Langganan pada
l
adalah salah satu fitur terbaru dari Brachylog (meskipun masih lebih tua dari tantangan), dan ini merupakan tantangan yang baik untuk menggunakannya.sumber
ṇlᵛ2
danṇlᵛ²
juga akan berhasil.JavaScript (ES6),
24282524 byteMemperbaiki program dan mencukur tiga byte berkat @ PunPun1000
Dicukur satu byte berkat @Shaggy
Mengembalikan nilai true jika valid dan false jika tidak.
sumber
s=>s.match(/^(..\n)*..$/)
keduanya harus benar-benar cocok dengan keduanya dan juga lebih pendek pada 25 bytetest
alih-alihmatch
.Cubix , 20 byte
Mengembalikan 1 untuk kebenaran dan tidak untuk falsey
Kubus
ABq
menyeruput semua input, membalikkannya dan mendorong EOI (-1) ke bagian bawah tumpukan>;;
Masuk ke loop dan hapus item dari tumpukan?
Tes untuk EOI (-1).1uO@
dorongan 1 ke tumpukan, putar-u ke output integer dan berhenti_
pantulkan kembali ke?
yang diarahkan kew
lajur jalurN-!$@;U
umpan garis dorong (10) ke tumpukan, kurangi, hasil pengujian, lewati penghentian jika salah, hapus hasilnya dan putar u;;>
hapus feed garis dari tumpukan dan arahkan ke loop.Cobalah online!
sumber
Python, 51
Pelari ujian kasus:
sumber
Haskell,
235232 byteSaya mendapatkan inspirasi dari beberapa solusi lain, trik pintar menambahkannya
"\n"
.sumber
Jelly , 6 byte
Cobalah online!
Penjelasan:
sumber
Retina , 10 byte
Cobalah online! Keluaran
1
atau0
sesuai kebutuhan.sumber
JavaScript (ES6),
3524 byteCobalah
sumber
There's gotta be a shorter way to do this with RegEx!
Yup (dan milik saya mungkin tidak optimal)05AB1E , 6 byte
Cobalah online!
sumber
J-uby ,
1918 byte:=~&
membuat fungsi anonim yang mengambilx
dan mengembalikan0
jika cocok dengan regex/^(..\n*)..$/m
, ataunil
sebaliknya.sumber
Java (OpenJDK 8) , 25 byte
Cobalah online!
Memeriksa apakah string input memiliki sejumlah baris yang diikuti oleh umpan baris dan baris terakhir tanpa satu (memastikan setidaknya satu baris)
sumber
Utilitas Bash + GNU, 13
Ini menetapkan nilai pengembalian shell (dapat diakses di
$?
) ke 0 untuk false dan 1 untuk true. Ini sebenarnya berlawanan dengan kebiasaan shell pada umumnya , jadi untuk memperbaikinya Anda harus melakukannya:Utilitas Bash + GNU, 15
sumber
Ruby, 22 byte
sumber
Japt ,
76 byteCobalah online
Penjelasan
sumber