คำอธิบาย
แก้ไขระยะห่างระหว่างสองสายเป็นหน้าที่ของจำนวนที่น้อยที่สุดของการแทรกการลบหรือแทนการแปลงหนึ่งคำลงในคำอื่น
ค่าใช้จ่ายในการแทรกและลบ 1 และค่าทดแทน 2
ตัวอย่างเช่นระยะห่างระหว่างABและAคือ 1 เนื่องจากการลบมีค่าใช้จ่าย 1 และการแก้ไขที่จำเป็นเท่านั้นคือการลบBอักขระ
ระยะห่างระหว่างCARและFARคือ 2 เนื่องจากการทดแทนมีค่าใช้จ่าย 2 วิธีอื่นในการดูที่นี้คือการลบหนึ่งครั้งและการแทรกหนึ่งครั้ง
กฎระเบียบ
กำหนดให้มีสองสายอินพุต (ที่ให้มา แต่สะดวกในภาษาของคุณ) โปรแกรมของคุณต้องค้นหาระยะทางแก้ไขขั้นต่ำระหว่างสองสาย
คุณอาจสมมติว่าสตริงมีอักขระเท่านั้นA-Zและมีน้อยกว่า 100 อักขระและมากกว่า 0 อักขระ
นี่คือรหัสกอล์ฟดังนั้นทางออกที่สั้นที่สุดชนะ
กรณีทดสอบตัวอย่าง
ISLANDER, SLANDER
> 1
MART, KARMA
> 5
KITTEN, SITTING
> 5
INTENTION, EXECUTION
> 8
levenshteinฟังก์ชั่นในตัวจะถือว่าการแทนที่เป็นหนึ่งการแก้ไข (ทดแทน) ไม่ใช่สอง (ลบ + แทรก)