วัตถุประสงค์
จากวิกิพีเดีย :
ตัวย่อแบบเรียกซ้ำเป็นตัวย่อที่อ้างถึงตัวเองในการแสดงออกซึ่งมันยืน
เป้าหมายของคุณคือการตรวจสอบว่าสตริงเป็นตัวย่อซ้ำหรือไม่
- คำย่อเป็นคำแรก
- คำไม่ได้ตรงตามตัวพิมพ์ใหญ่ - เล็กคั่นด้วยช่องว่างเดียว
- สตริงที่ระบุไม่มีเครื่องหมายวรรคตอนและเครื่องหมายอัญประกาศ
- เฉพาะอักษรตัวแรกของแต่ละคำเท่านั้นที่สามารถเป็นส่วนหนึ่งของตัวย่อ
นอกจากนี้คุณยังจะต้องให้คำฟังก์ชั่น เพื่อความเรียบง่ายทุกคำถือได้ว่าเป็นคำฟังก์ชั่น
ตัวอย่าง
f("RPM Package Manager") => { true, [] }
f("Wine is not an emulator") => { true, ["an"] }
f("GNU is not Unix") => { true, ["is"] }
f("Golf is not an acronym") => { false }
f("X is a valid acronym") => { true, ["is","a","valid","acronym"] }
คุณสามารถให้โปรแกรมเต็มหรือฟังก์ชั่น
สตริงอินพุตสามารถนำมาจาก STDIN หรือเป็นอาร์กิวเมนต์ของฟังก์ชัน
ผลลัพธ์เอาต์พุตสามารถเป็นจริง / เท็จ, 0/1, ใช่ / ไม่ใช่ ...
รายการคำฟังก์ชัน (รูปแบบของรายการใด ๆ ที่ถูกต้อง) จะต้องได้รับหากว่าเป็นตัวย่อแบบเรียกซ้ำ (แม้ว่ารายการนั้นจะว่างเปล่า) . คุณไม่จำเป็นต้องรักษาการใช้อักษรตัวพิมพ์ใหญ่ของฟังก์ชันคำ
เกณฑ์การชนะ
นี่คือการเขียนรหัสกอล์ฟรหัสที่สั้นที่สุดชนะ