เมื่อเด็กเปิดปากพวกเขาไม่เพียง แต่พูดพล่อยๆ จริงๆแล้วพวกเขากำลังพูดในรหัสขั้นสูงที่พิสูจน์ได้สำหรับผู้ใหญ่ ...
Baby-talk Cipher
เมื่อเด็กพูดถึงมันอาจมีลักษณะคล้ายกับgogooa gagooook aagaaoooy
แต่ละส่วนที่คั่นด้วยช่องว่างเดี่ยวแทนอักขระ (ตัวอย่างด้านบนแสดงถึง 3 ตัวอักษร)
ในการถอดรหัสส่วนเราจะต้องนับจำนวน As และ Os ที่มี อย่างไรก็ตามเราจะนับเฉพาะสิ่งที่อยู่ติดกับสระอื่นเท่านั้น ตัวอย่างเช่น A ใน 'ปิดปาก' จะไม่นับ แต่ทั้ง A และ O ใน 'gaog' จะเป็นเช่นนั้น
การนับตัวอย่างด้านบนจะมีลักษณะเช่นนี้:
Section | Num Os | Num As
gogooa | 2 | 1
gagooook | 4 | 0
aagaaoooy | 3 | 4
จากนั้นเราใช้ค่าเหล่านี้เพื่อแปลงอินพุตให้เป็นข้อความธรรมดาบนสแควร์ Polybius นี่คือการแสดงตัวอักษรภาษาอังกฤษ 5x5 โดยเว้น 'J' (โปรดทราบว่าในการพูดคุยของทารกจะมีการใช้กฎการนับจำนวน 0 รายการ):
0 1 2 3 4
0 A B C D E
1 F G H I K
2 L M N O P
3 Q R S T U
4 V W X Y Z
การใช้จำนวน Os เป็นคอลัมน์และจำนวน As เป็นแถวเราจะพบว่าอักขระแต่ละตัวแสดงถึง:
Section | Num Os | Num As | Character
gogooa | 2 | 1 | (2,1) -> H
gagooook | 4 | 0 | (4,0) -> E
aagaaoooy | 3 | 4 | (3,4) -> Y
ซึ่งบอกเราว่าเด็กแค่พูดว่า "HEY"
หมายเหตุ :
- หากส่วนที่เป็นตัวแทนของตัวละครมีมากกว่า 4 As หรือ Os ให้ละเว้นค่าพิเศษเนื่องจาก 4 เป็นค่าสูงสุดของตาราง - สำหรับภารกิจนี้ Y ไม่ใช่สระ - เฉพาะ A, E, I, O และ U.
ความท้าทาย
งานของคุณคือการสร้างโปรแกรมเต็มรูปแบบซึ่งรับหนึ่งอินพุตคำพูดสำหรับเด็กแล้วพิมพ์ออกมาเป็นข้อความธรรมดา
- โปรแกรมของคุณจะต้องสามารถป้อนข้อมูลเป็นตัวพิมพ์ใหญ่ตัวพิมพ์เล็กและทั้งสองอย่าง
- ข้อมูลที่ป้อนจะมีเพียงตัวอักษรตัวอักษร ASCII (AZ และ az) โดยมีช่องว่างเดียวเพื่อแยกคำพูดของเด็ก
- ข้อความเอาต์พุตสามารถเป็นได้ทุกกรณี
- คุณควรใช้ข้อมูลจากและพิมพ์ธรรมดาบน
STDIN
STDOUT
หากภาษาของคุณไม่มีสิ่งเหล่านี้ให้ใช้เทียบเท่าที่ใกล้ที่สุด - นี่คือcode-golfดังนั้นโค้ดที่สั้นที่สุดในหน่วยไบต์จะเป็นผู้ชนะ - แต่ก็ยินดีต้อนรับทางออกใด ๆ
กรณีทดสอบ
'GLOOG KAKAAOOO ARGOOO OOOOOGUGUU' -> CODE
'oaka pooopaa gaau augu' -> GOLF
'Aoao U oOOAoa oaoAoo aoAoAOa' -> NAPPY
'GUG gAGaA gOougOou' -> ALE
'OOaGOG GoGOOoGoU gAA bLAA GOUGoOUgAIGAI' -> HELLO
.toUpperCase()
ฟังก์ชั่นการโทรหรือคล้าย ๆ กันไม่ใช่ความท้าทายที่น่าตื่นเต้นจริงๆ
gogooa
ได้มี 2 o หรือไม่? และgagooook
มี 0 ของอย่างไร?
FAG
: P
'GUG gAGaA gOougOou' -> 'ALE'
ทารกกำลังดื่มเบียร์ใช่ไหม : D