Saya tidak tahu tentang Anda semua, tetapi saya tidak mempersiapkan untuk Halloween - tidak pernah akan pernah - tetapi tetangga saya, jadi kami akan membantunya.
Dia butuh bantuan untuk mencari tahu merek permen mana yang dia miliki, tetapi dia memiliki banyak permen yang tidak akan bisa dia selesaikan sebelum Halloween.
Dia memiliki:
- Snickers
- Kit Kat
- Starburst
- GummyBears
- Twix
Memasukkan
String multiline (atau bentuk wajar lainnya) yang hanya berisi huruf dan spasi.
Keluaran
Nilai palsu jika bukan permen yang valid, atau permen mana yang jika itu adalah permen.
Cara menentukan permen mana yang ada
Permen valid jika dikatakan salah satu merek di atas. Namun, ini tidak sesederhana itu, karena ini adalah permen yang valid:
K i t
K a
t
Permen yang valid adalah yang mengandung:
- surat-surat itu disusun dari kiri ke kanan
- huruf ditulis dengan benar
- surat-surat, pergi dari kiri ke kanan, tidak baik naik dan turun
- surat-surat dengan spasi dihapus dari salah satu merek di atas
Ini adalah kode-golf , jadi kode terpendek dalam byte menang!
Contohnya
Kebenaran:
1.
kers
c
i
n
S
2.
Kit K a t
3.
St a
r b u
r st
4.
Bear s
G ummy
5.
T w i
x
Falsys:
1.
SNICKERS
2.
C n
a d y
3.
xiwT
4.
S C I
ss o
r s
5.
Kit
Kat
Jawaban:
Pyth - 72 byte
Saya harap saya menangkap semua kasus tepi. Akan mendasarkan kompres daftar permen.
Test Suite .
sumber
JavaScript (ES6),
221218216212208205201 byteCoba di sini.
sumber
Snick
,ears|T
, dll saya pikir Anda dapat memperbaiki ini dengan menambahkan.split('|')
sebelum.indexOf
.ears|T
bukan masalah karena hanya surat yang diizinkan dalam kasus uji. Namun, Anda benar, untukSnick
.Racket 446 byte
Tidak Disatukan:
Pengujian:
Keluaran:
sumber
JavaScript (ES6), 139 byte
Menerima input sebagai array string berlapis ruang.
sumber
R, 199 karakter
Input dalam bentuk matriks karakter.
match
mengurus permen yang mana (itu memeriksa kapitalisasi juga).Untuk memeriksa apakah huruf-huruf tersebut merupakan urutan "naik" atau "turun", kita hanya perlu memeriksa bahwa lokasi karakter non-spasi pertama (jika ada) di setiap baris meningkat atau menurun. Untuk melakukan ini, kita
apply
diff
. Ini mungkin memiliki beberapa nol di dalamnya, jika tidak semuanya positif atau negatifdiff
z
, dan ambil produk luarnya dengan sendirinya. Jika diff memiliki entri campuran positif dan negatif, akan ada entri negatif di suatu tempat di produk luarnya. Jika demikian, kembalikan FALSE.Perhatikan bahwa kasus suka
akan mengembalikan vektor karakter kosong (khususnya bukan "Twix"), karena
match
akan mencoba mencocokkan "Twxi".sumber
Python 2.7, 254 byte
Saya yakin ini bisa bermain golf lebih banyak. Input adalah array garis
s
.Coba di sini!
sumber