บทนำ
ตามที่โพสต์ของ Rand Al'Thorใน Puzzling SE คำที่ใกล้ชิดคือคำใด ๆ ที่มีตัวอักษรเรียงตามลำดับตัวอักษรสามตัว (เรียงตามลำดับใด ๆ )
คำเช่นการศึกษา , Foghornและคาบาเรต์ถือว่าเป็นคำที่มีความใกล้ชิดกันในขณะที่คำต่าง ๆ เช่นการเรียนรู้ , klaxonและการแสดงนั้นไม่ใช่คำที่ใกล้เคียงกัน
ท้าทาย
ความท้าทายคือการเขียนโค้ดโปรแกรมที่สามารถใช้คำเดียวเป็นอินพุต (สมมติตัวพิมพ์เล็กสำหรับเจตนาและวัตถุประสงค์ทั้งหมด) และส่งคืนเอาต์พุตที่ (ถ้ามี) แสดงรายการชุดตัวอักษรต่อเนื่องทั้งหมด (เช่นในตัวพิมพ์เล็ก) เป็นคำที่ใกล้เคียงกันและให้ผลลัพธ์ที่ว่างเปล่าหากไม่ใช่คำที่ใกล้เคียงกัน
ตัวอย่าง
Input: education
Output: cde
Input: foghorn
Output: fgh
Input: cabaret
Output: abc
Input: hijacking
Output: ghi, hij, ijk
Input: pneumonia
Output: mno, nop
Input: klaxon
Output: <<no output>>
Input: perform
Output: <<no output>>
Input: learning
Output: <<no output>>
กฎระเบียบ
- ในขณะที่อินพุตจะถือว่าเป็นคำตัวพิมพ์เล็กและผลลัพธ์จะต้องเป็นตัวพิมพ์เล็กลักษณะของเอาต์พุตจะแตกต่างกันไปตามตัวเลือกของภาษาการเข้ารหัสของคุณ โปรดเลือกรูปแบบการแสดงผลที่เหมาะสมกับลักษณะของความท้าทายที่ดีที่สุดไม่ว่าจะเป็น STDOUT, ไฟล์เอาต์พุต, อาร์เรย์ ฯลฯ
- เพราะนี่คือโค้ดกอล์ฟมันจะเป็นกรณีของจำนวนไบต์ต่ำสุดที่เป็นผู้ชนะที่ชัดเจน
- ไม่มีช่องโหว่โง่ๆ
- ฉันจะไม่ยอมรับคำตอบที่มีตัวอักษรต่อเนื่องตามลำดับที่ไม่ใช่ตัวอักษร ... ดังนั้น
cab
จะไม่ถือว่าเป็นผลลัพธ์ที่เหมาะสมcabaret
เช่น - หมายเหตุพิเศษในขณะที่ "triplets" ไม่จำเป็นต้องเรียงตามตัวอักษร แต่ตัวละครใน triplets จะต้อง ... ดังนั้นในกรณีของคำว่า "ประสิทธิภาพ" ตัวอย่างเช่นผลลัพธ์
mno,nop
จะได้รับการยอมรับnop,mno
เป็นความประสงค์ ในกรณีที่มีคำว่า "หักหลัง" มีหกวิธีที่สามของghi
,hij
และijk
จะได้รับการจัดให้อยู่ในรายการและทั้งหกพีชคณิตเป็นที่ยอมรับเป็นผลผลิต
นอกจากนั้นในคะแนนของคุณรับชุดกอล์ฟ!
!
และมีคำอื่นเป็นหนึ่งในปัจจุบันให้ผลเหมือนกัน :-)
pneumonia
สามารถเป็นได้[('m','n','o'),('n','o','p')])
?