String Primenary ( binary-prime ) adalah string yang, ketika ditulis sebagai grid biner, setiap baris dan kolom memiliki total prima.
Itu penjelasan yang tidak jelas, jadi mari kita uraikan dengan contoh yang berhasil ...
Untuk contoh ini kita akan menggunakan string bunny
:
Pertama, cari titik kode ASCII dari setiap karakter dan representasi binernya:
Char | ASCII | Binary
b 98 1100010
u 117 1110101
n 110 1101110
n 110 1101110
y 121 1111001
Ambil nilai-nilai biner ini, dari atas ke bawah, dan atur ke dalam kisi (menambahkan nol di depan jika perlu):
1 1 0 0 0 1 0
1 1 1 0 1 0 1
1 1 0 1 1 1 0
1 1 0 1 1 1 0
1 1 1 1 0 0 1
Lalu, hitung jumlah 1
s di setiap baris dan kolom:
1 1 0 0 0 1 0 > 3
1 1 1 0 1 0 1 > 5
1 1 0 1 1 1 0 > 5
1 1 0 1 1 1 0 > 5
1 1 1 1 0 0 1 > 5
v v v v v v v
5 5 2 3 3 3 2
Jika, dan hanya jika, setiap total tunggal adalah prima (seperti di sini) maka string tersebut adalah binary-prime yang valid.
Tantangan
Tugas Anda adalah untuk membuat fungsi atau program yang, ketika diberi string, mengembalikan / output truthy
jika string tersebut adalah primer, dan falsy
sebaliknya.
Aturan / Detail
- Anda dapat mengasumsikan bahwa karakter string akan selalu berada dalam rentang ASCII
33-126
(inklusif). - String tidak akan kosong.
- String primer tidak harus memiliki panjang prima - misalnya,
W1n*
valid, meskipun memiliki 4 karakter. - Ini adalah kode-golf , jadi jawaban tersingkat (dalam byte) menang - tetapi semua pengiriman diterima.
- Celah standar dilarang.
Uji Kasus
'husband' -> True
'HOTJava' -> True
'COmPaTIBILE' -> True
'AuT0HACk' -> True
'PPCW' -> False
'code-golf' -> False
'C++' -> False
'/kD' -> False
'HI' -> False
'A' -> False
Ada juga contoh Python yang berfungsi, tetapi sangat verbose di repl.it yang bisa Anda uji solusinya.
False
, betul?
0
dan 1
bukan prima, dan setiap string input 1-2 karakter yang hanya berisi karakter dalam rentang yang diberikan dijamin mengandung setidaknya satu 0
atau 1
sebagai jumlah vertikal. Anda harus menambahkan beberapa string karakter 1 dan 2 sebagai kasus uji.
false
. 2 input char bisa, tetapi tidak dalam rentang ASCII yang kami gunakan, jadi untuk skenario ini Anda benar.
husband
itu valid? Atau salah satunya? Masalah besar!