Catatan: Ini terinspirasi oleh pertanyaan ini oleh @ Willilling di mana tugasnya adalah untuk menghitung jumlah lempeng sempurna dengan panjang tertentu, tetapi sedikit berbeda.
Kami menyebutnya plat nomor sempurna yang plat yang teksnya memenuhi ketentuan berikut:
- Ini terdiri dari karakter, yang bisa berupa huruf besar (
[A-Z]
) atau digit ([0-9]
) - Menjumlahkan posisi huruf-hurufnya dalam alfabet Inggris, 1-diindeks (yaitu:)
A=1,B=2,...,Z=26
memberikan bilangan bulat n - Mendapatkan setiap potongan angka, menjumlahkannya dan kemudian mengalikan semua hasil memberikan hasil yang sama, n
- n adalah kuadrat sempurna (mis:
49
(7 2 ) ,16
(4 2 ) )
Sebuah plat hampir sempurna memenuhi kondisi untuk plat sempurna, kecuali bahwa n adalah tidak persegi sempurna.
Memasukkan
String yang mewakili teks plat, diambil sebagai input dalam bentuk standar apa pun, kecuali untuk hardcoding.
Keluaran
Jika string yang diberikan merupakan hampir sempurna plat, mengembalikan nilai truthy (misalnya: True
/ 1
), jika tidak mengembalikan falsy nilai (misalnya: False
/ 0
). Segala bentuk standar keluaran diterima sambil memperhatikan bahwa celah ini dilarang keras.
Contohnya
licence plate -> output
A1B2C3 -> 1
A + B + C = 1 + 2 + 3 = 6
1 * 2 * 3 = 6
6 is not a perfect square, 6 = 6 => nearly perfect plate
01G61 -> 1
(0 + 1) * (6 + 1) = 7
G = 7
7 is not a perfect square, 7 = 7 => nearly perfect plate
11BB2 -> 0
(1 + 1) * 2 = 4
B + B = 2 + 2 = 4
4 = 4, but 4 is the square of 2 => perfect license plate (not what we want)
67FF1 -> 0
(6 + 7) * 1 = 13
F + F = 6 + 6 = 12
12 != 13 => not perfect at all!
Mencetak gol
Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang!
n
adalah tidak persegi sempurna?
s/licence/license/ig
hal ini, ketahuilah bahwa "lisensi" adalah ejaan yang benar dalam bahasa Inggris Inggris (dan juga bahasa Inggris di bagian lain dunia).