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 1s 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 truthyjika string tersebut adalah primer, dan falsysebaliknya.
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?
0dan 1bukan prima, dan setiap string input 1-2 karakter yang hanya berisi karakter dalam rentang yang diberikan dijamin mengandung setidaknya satu 0atau 1sebagai 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.
husbanditu valid? Atau salah satunya? Masalah besar!