ระยะห่างของ Hamming ระหว่างสองสายที่มีความยาวเท่ากันคือจำนวนตำแหน่งที่อักขระที่เกี่ยวข้องแตกต่างกัน หากสตริงไม่ได้มีความยาวเท่ากันระยะ Hamming จะไม่ถูกกำหนด
ท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่ค้นหาระยะทางที่ใหญ่ที่สุดของ Hamming จากทุกคู่ของสตริงจากรายการของสตริงที่มีเบาะตามที่จำเป็นตามกฎที่อธิบายด้านล่าง
a-zA-Z0-9
ตัวละครจะมาจากภายใน
สตริงอาจมีความยาวไม่เท่ากันดังนั้นสำหรับการเปรียบเทียบแต่ละครั้งสตริงที่สั้นกว่าจะต้องมีการเสริมเบาะดังนี้:
- ตัดสตริงจากจุดเริ่มต้นหลาย ๆ ครั้งตามต้องการเพื่อให้ตรงกับความยาวที่ต้องการ
- เปลี่ยนกรณีของตัวอักษรแต่ละการตัดเวลาคี่ (1, 3, 5, ฯลฯ )
- ปล่อยให้สิ่งที่อยู่ข้างนอก
a-zA-Z
ไม่เปลี่ยนแปลงเมื่อห่อ
ตัวอย่างเช่นสมมติว่าคุณจำเป็นต้องวางสตริงอักขระ 5 ตัวab9Cd
เพื่อให้ลงท้ายด้วยอักขระ 18 ตัว คุณจะจบลงด้วย:
ab9CdAB9cDab9CdAB9
^^^^^ ^^^
ด้วยการ^
เพิ่มภายใต้การล้อมรอบที่ 1 และ 3 เพื่อไฮไลต์การเปลี่ยนแปลงของตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
Input / Output
รูปแบบอินพุต / เอาต์พุตมีความยืดหยุ่น คุณสามารถสมมติว่าอินพุตมีอย่างน้อยสองสตริงและสตริงทั้งหมดจะมีอักขระอย่างน้อยหนึ่งตัว
ผลลัพธ์เป็นจำนวนเต็ม
กฎระเบียบ
กรณีทดสอบ
[ "a", "b" ] => 1
[ "a", "b", "c" ] => 1
[ "a", "a", "c" ] => 1
[ "abc", "abcd" ] => 1
[ "abc12D5", "abC34d3", "ABC14dabc23DAbC89d"] => 17
[ "a", "Aaa", "AaaA", "aAaAa", "aaaaaaaaaaaaaa", "AAaAA", "aAa" ] => 8
["AacaAc", "Aab"] => 2
การดำเนินการอ้างอิง
ฉันทดสอบตัวอย่างด้วยรหัส R (ไม่สมบูรณ์) ที่คุณสามารถลองที่นี่เพื่อเปรียบเทียบตัวอย่างอื่น ๆ ที่คุณอาจลองด้วยรหัสของคุณ
["AacaAc", "Aab"] => 2
กรณีทดสอบที่แนะนำ: สนามกอล์ฟที่มีวัตถุประสงค์เพื่อตอบ Jelly ของฉันจะล้มเหลวในกรณีนั้น แต่จะผ่านอื่น ๆ ทั้งหมด