Bir Primenary ( binary-prime ) dizesi, bir ikili ızgara olarak yazıldığında, her satır ve sütunda bir asal toplam bulunan bir dizedir.
Bu oldukça belirsiz bir açıklama, öyleyse çalışmış bir örnekle parçalayalım ...
Bu örnek için dizeyi kullanacağız bunny
:
Öncelikle, her karakterin ASCII kod noktasını ve ikili gösterimini bulun:
Char | ASCII | Binary
b 98 1100010
u 117 1110101
n 110 1101110
n 110 1101110
y 121 1111001
Bu ikili değerleri yukarıdan aşağıya alın ve ızgaraya yerleştirin (gerekirse baştaki sıfırları ekleyin):
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
Ardından, 1
her satır ve sütundaki s sayısını sayın :
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
Eğer ve sadece eğer, her bir toplamın asal (burada olduğu gibi) ise, dize geçerli bir ikili asaldır.
Meydan okuma
Göreviniz, bir dize verildiğinde truthy
, dize ilkel ise döndüren / çıktı veren bir işlev veya program oluşturmaktır falsy
.
Kurallar / Detaylar
- Dizenin karakterlerinin her zaman ASCII aralığında
33-126
(dahil) olacağını varsayabilirsiniz . - Dize boş olmayacak.
- Bir primenary dize gelmez değil bir başbakan uzunluğa sahip - örneğin,
W1n*
4 karakter olmasına rağmen geçerlidir. - Bu kod golfü , bu yüzden en kısa cevap (bayt cinsinden) kazanır - ancak tüm bildirimler açıktır.
- Standart boşluklar yasaklandı.
Test Kılıfları
'husband' -> True
'HOTJava' -> True
'COmPaTIBILE' -> True
'AuT0HACk' -> True
'PPCW' -> False
'code-golf' -> False
'C++' -> False
'/kD' -> False
'HI' -> False
'A' -> False
Çözümünüzü test edebileceğiniz repl.it üzerinde çalışan, ancak inanılmaz derecede ayrıntılı bir Python örneği de var .
False
, doğru mu?
0
ve 1
asal değildir ve belirli bir aralıkta tek karakter içeren her 1-2 karakter girişi dizisi en az bir içerecek şekilde garanti 0
veya 1
dikey bir toplamı olarak. Test durumları olarak bazı 1 ve 2 karakter dizileri eklemelisiniz.
false
. 2 karakter girişi olabilir, ancak kullandığımız ASCII aralığında değil, bu nedenle bu senaryoda haklısınız.
husband
geçerli olduğunu keşfettiğinizi sorabilir miyim ? Veya bunlardan herhangi biri? Yine de büyük sorun!