Dalam byte sesedikit mungkin, tentukan apakah dua nilai yang diberikan masing-masing cocok dengan salah satu dari berikut ini:
Nilai pertama
2 string or integer - whichever you prefer
to case insensitive
too case insensitive
two case insensitive
t0 case insensitive (t zero)
Nilai kedua
b case insensitive
be case insensitive
bee case insensitive
b3 case insensitive
Contohnya
2 'Bee' true
'2' 'b' true
'not to' 'be' false
'that is' 'the question' false
Jawaban:
Shakespeare , 4778 Bytes
Catatan: jawaban ini tidak dimaksudkan untuk menjadi pesaing yang serius
Output 0 jika salah, 1 jika benar.
Ini bisa dengan mudah menjadi lebih pendek (dan jika orang benar-benar menginginkan saya, kata panjangnya dapat dikurangi), tetapi untuk melakukannya akan menjadi tamparan bagi wajah Will yang baik. Saya selalu merasa Horatio adalah pahlawan tanpa tanda jasa Hamlet, jadi saya memastikan bahwa dialah yang akan mengirim monolog intens ke Hamlet di mana Hamlet akhirnya harus membuktikan bahwa dia sebagus Horatio (yang mewakili baris baru).
Kode itu sendiri cukup sederhana. Semua karakter sans Hamlet adalah nilai ascii (Urutan:)
newline,space,0,2,3,B,b,E,e,O,o,T,t,V,v
dan kemudian kode tersebut adalah mesin keadaan sederhana (khususnya, DFA ) yang bertransisiScene XI
menjadi keadaan terima danScene XII
sebagai keadaan tolak..
Setelah membuat ini, saya hanya menancapkannya ke Shakespeare, menggunakan fakta bahwa saya bisa drop down ke keadaan berikutnya ketika mereka berdekatan secara numerik. Saya hanya mengujinya dengan versi Shakespeare yang saya tautkan dalam judul, tetapi saya yakin kami mendefinisikan bahasa dengan iirc implementasi.
sumber
Retina , 28
Sangat mungkin jawaban kode-golf tercepat saya - 9 menit setelah OP.
Parameter input dipisahkan dengan koma. Output adalah 1 untuk truey dan 0 untuk falsey.
Cobalah online.
sumber
Pyth, 34 byte
Cobalah online: Demonstrasi
Penjelasan:
sumber
Pyth, 41 byte
Coba di sini!
Pencarian daftar langsung. Mencetak daftar kosong sebagai nilai palsu dan daftar tidak kosong sebagai nilai sebenarnya.
Melihat atau cara yang lebih baik, saya tidak terlalu suka yang ini.
sumber
Oracle SQL 11.2, 86 byte
Mengembalikan satu baris untuk yang benar dan tidak ada baris untuk falsey.
sumber
05AB1E ,
3945 byteKode:
Cobalah online!
Menggunakan pengodean CP-1252. Kebenaran adalah ketika angka dikeluarkan dan falsy adalah ketika tidak ada yang ditampilkan.
Versi yang tidak bersaing (39 byte) , berfungsi dengan versi terbaru:
sumber
ES6,
564845 byteDisimpan 5 byte berkat @ user81655. Disimpan 3 byte dari beberapa optimasi lebih lanjut. Disimpan 3 byte lagi berkat @ Patrickrick.
t[wo]?o
adalah regex terpendek yang dapat saya pikirkan untuk mencocokkan ketiga homofon.Jika diizinkan untuk melewatkan dua nilai sebagai array parameter tunggal, maka parameter lainnya dapat menjadi parameter normal, menyimpan 5 byte lainnya.
sumber
(...a)=>/^(2|t0|t[wo]?o),b(ee?|3)?$/.test(a)
i
bendera hilang.Perl 6,
4544 byteTerima kasih kepada orang-orang di IRC yang telah membantu saya bermain golf
pemakaian
Alternatif yang tidak bersaing, 54 byte
Ini adalah alternatif yang bagus untuk di atas jika Anda berpikir regex kotor, tetapi sedikit lebih lama. Itu bisa diturunkan beberapa byte lagi, tetapi karena tidak bersaing saya akan membiarkannya.
sumber
[
dan]
menunjukkan grup yang tidak menangkap dalam regex, yang akan ditulis sebagai(?:
dan)
di Perl 5. Untuk mendapatkan kelas karakter Anda harus menempatkannya di dalam kurung sudut<[
dan]>
.Python 2.7, 133 byte
Tidak yakin apakah kami seharusnya memposting solusi jika ada versi yang lebih kecil di komentar tapi ini versi saya di Python.
Sunting: Tanpa fungsi itu hanya 73 byte (dan itu bahkan tidak mendekati jawaban terbaik. Maafkan saya, saya baru
sumber
2
(integer)e('oo', '3')
dan substring serupa .Ruby,
535552 byteSaya akan jujur, ini adalah usaha pertama saya mencoba masalah golf.
Fungsi panggilan dalam bentuk
f.call(firstValue, secondValue)
0
adalah Truthy,nil
is Falsy.Uji di Sini
sumber
Japt, 36 byte
Mungkin saya melewatkan sesuatu, tetapi ini harus bekerja sepenuhnya. Uji secara online!
sumber
Pyth, 39 byte
-3 byte oleh @FryAmtheEggman
Coba di sini .
sumber
Python,
8583 byte@Manatwork menyelamatkan saya dua byte.
Ini adalah kekuatan yang sangat kasar, saya akan melihat ke solusi regex berikutnya.
sumber
'2 to too two t0'.split()
Untuk array kedua tidak ada bedanya.'2,to,too,two,t0'.split(',')
. Saya konyol.PowerShell v3 +,
7470 byteTidak menggunakan regex. Mengambil dua input, memeriksa apakah yang pertama adalah
-in
array yang telah dibuat secara dinamis oleh-split
operator, mengubah Boolean menjadi int+
, kemudian mengalikannya*
dengan memeriksa apakah-in
array kedua adalah array kedua (yang secara otomatis akan melemparkan Boolean sebagai sebuah int ). Ini berfungsi karenax*y == x&y
jikax
dany
hanya bisa1
atau0
.PowerShell secara default tidak peka huruf besar-kecil, jadi kami mendapatkannya gratis. Akan menghasilkan
0
atau1
untuk falsey / truthy, masing-masing. Membutuhkan v3 atau yang lebih baru untuk-in
operator.Sunting - Disimpan 4 byte dengan menggunakan unary -split
sumber
Groovy, 52 byte
==~
adalah operator regex keren di groovy yang memeriksa kesetaraan.Tes:
Tes Regex101 .
sumber
x
yangt
dany
adalah0b
?f('t', '0b')
menjadi salah, tetapi saya khawatir kode Anda akan kembali benar.MATL , 32
4143bytePendekatan yang sama dengan jawaban Retina @ DigitalTrauma . Input dipisahkan oleh koma. Output yang sebenarnya adalah string dengan dua input lebih kecil; falsy bukanlah keluaran.
Cobalah online!
sumber
C # 6, 132 byte
Versi tidak dikunci (Hanya sedikit lebih mudah dibaca):
sumber
Python 2, 67 byte
Menggunakan regex Trauma Digital. Input adalah string tunggal yang dipisahkan oleh koma. Tidak yakin apakah format itu diizinkan untuk input ...
sumber