สตริง Primenary ( binary-prime ) คือสิ่งที่เมื่อเขียนเป็นกริดไบนารีทุกแถวและคอลัมน์จะมีจำนวนรวมทั้งหมด
นั่นเป็นคำอธิบายที่คลุมเครือดังนั้นเรามาทำลายตัวอย่างการทำงาน ...
สำหรับตัวอย่างนี้เราจะใช้สตริงbunny
:
ก่อนอื่นให้หาจุดโค้ด ASCII ของตัวละครแต่ละตัวและการแทนค่าไบนารี่:
Char | ASCII | Binary
b 98 1100010
u 117 1110101
n 110 1101110
n 110 1101110
y 121 1111001
ใช้ค่าไบนารีเหล่านี้จากบนลงล่างและจัดเรียงเป็นตาราง (เพิ่มศูนย์นำหน้าถ้าจำเป็น):
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
จากนั้นนับจำนวน1
s ในแต่ละแถวและคอลัมน์:
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
ถ้าและต่อเมื่อทุกผลรวมทั้งหมดเป็นจำนวนเฉพาะ (เช่นที่นี่) สตริงจะเป็นเลขฐานสองที่ถูกต้อง
ความท้าทาย
งานของคุณคือการสร้างฟังก์ชั่นหรือโปรแกรมซึ่งเมื่อได้รับสตริงผลตอบแทน / เอาท์พุทtruthy
ถ้าสตริงเป็นต้นและfalsy
อื่น ๆ
กฎ / รายละเอียด
- คุณอาจสันนิษฐานว่าตัวละครของสตริงจะอยู่ในช่วง ASCII เสมอ
33-126
(รวมอยู่ด้วย) - สตริงจะไม่ว่างเปล่า
- สตริงดั้งเดิมไม่จำเป็นต้องมีความยาวเฉพาะ - ตัวอย่างเช่น
W1n*
ถูกต้องแม้ว่าจะมีอักขระ 4 ตัว - นี่คือโค้ดกอล์ฟดังนั้นคำตอบที่สั้นที่สุด (เป็นไบต์) ชนะ แต่การส่งทั้งหมดยินดีต้อนรับ
- ช่องโหว่มาตรฐานถูกแบน
กรณีทดสอบ
'husband' -> True
'HOTJava' -> True
'COmPaTIBILE' -> True
'AuT0HACk' -> True
'PPCW' -> False
'code-golf' -> False
'C++' -> False
'/kD' -> False
'HI' -> False
'A' -> False
นอกจากนี้ยังมีตัวอย่าง Python ที่ใช้งานได้จริงอย่างเหลือเชื่อบน repl.itซึ่งคุณสามารถทดสอบโซลูชันของคุณได้
False
ถูกต้องหรือไม่
0
และ1
ไม่ได้สำคัญและทุกๆ 1-2 อักขระอินพุตถ่านที่มีตัวอักษรเฉพาะในช่วงที่กำหนดรับประกันว่าจะมีอย่างน้อยหนึ่ง0
หรือ1
เป็นผลรวมแนวตั้ง คุณควรเพิ่มสตริงอักขระ 1 และ 2 เป็นกรณีทดสอบ
false
ดังนั้นพวกเขาจะกลับมา 2 อินพุตถ่านสามารถทำได้ แต่ไม่อยู่ในช่วง ASCII ที่เราใช้อยู่ดังนั้นสำหรับสถานการณ์นี้คุณถูกต้อง
husband
ถูกต้องได้อย่างไร? หรือใด ๆ ของพวกเขา ปัญหาใหญ่ แต่!