ในการท้าทายนี้คุณจะเขียนโปรแกรมที่รับสตริงที่คั่นด้วยสองบรรทัดใหม่คือ s1 (บรรทัดแรก) และ s2 (บรรทัดที่สอง) เป็นอินพุต (STDIN หรือใกล้เคียงที่สุด) คุณสามารถสันนิษฐานได้ว่าความยาวของ s1 นั้นจะเล็กกว่า 30 และใหญ่กว่าความยาวของ s2 เสมอ โปรแกรมควรแสดงผลแต่ละขั้นตอนในระยะทางของ levenshtein จาก s1 ถึง s2
เพื่ออธิบายความหมายของแต่ละขั้นตอนในระยะทางของ levenshtein โปรแกรมจะพิมพ์สตริง n โดยที่ n คือระยะทาง levenshtein ระหว่าง s1 และ s2 และระยะทาง levenshtein ระหว่างสองสายที่อยู่ติดกันจะเป็นหนึ่งเสมอ ลำดับไม่สำคัญ เอาต์พุตควรคั่นด้วยบรรทัดใหม่และไม่รวม s1 เฉพาะ in-betweens และ s2 โปรแกรมควรทำงานภายในหนึ่งนาทีบนคอมพิวเตอร์ที่ทันสมัย
ตัวอย่าง:
การป้อนข้อมูล:
Programming
Codegolf
เอาท์พุท:
rogramming
Cogramming
Coramming
Coamming
Codmming
Codeming
Codeging
Codegong
Codegolg
Codegolf
การป้อนข้อมูล:
Questions
Answers
เอาท์พุท:
uestions
Aestions
Anstions
Ansions
Answons
Answens
Answers
การป้อนข้อมูล:
Offline
Online
เอาท์พุท:
Ofline
Online
การป้อนข้อมูล:
Saturday
Sunday
เอาท์พุท:
Sturday
Surday
Sunday
นี่คือลิงค์ไปยังสคริปต์ python ที่พิมพ์ระยะทางและขั้นตอนต่างๆ
กฎเพิ่มเติม:
- ไม่มีการใช้อินเทอร์เน็ต
- ช่องโหว่มาตรฐานใช้
นี่คือรหัสกอล์ฟเพื่อให้คุณเข้าใจรหัสสั้น รหัสที่สั้นที่สุดชนะ!
s1(newline)s2
อย่างไรก็ตามหลังจากดูคำถามอีกครั้งฉันสงสัยว่าถ้าคุณตั้งใจให้โปรแกรมเลือก s1 และ s2 ตามความยาวของ 2 สตริงที่กำลังมา คุณคิดว่าจะอธิบายประเด็นนี้ในลำดับใด นั่นคือเราสมมติว่าอินพุตเป็น s1 ตามด้วย s2 หรือเราเลือก s1 และ s2 ตามความยาวของอินพุตทั้งสองหรือไม่