บทนำ
ระยะดอร์ฟมีขนาดแตกต่างระหว่างสองส่วนย่อยของพื้นที่เมตริก โดยสังเขปพื้นที่เมตริกเป็นเพียงบางชุดที่มีฟังก์ชั่นระยะทางในตัว d(a, b) := abs(a - b)
ในความท้าทายนี้เราจะใช้หมายเลขธรรมชาติกับระยะทางสามัญ ระยะห่างของ Hausdorff ระหว่างสองเซตที่ไม่ว่างเปล่าA
และB
ได้รับจาก
max(max(min(d(a, b) for b in B) for a in A),
max(min(d(a, b) for a in A) for b in B))
ในรูปแบบ Python ระยะทางของ Hausdorff สามารถคำนวณได้โดยการหาองค์ประกอบA
ที่ระยะทางไปยังองค์ประกอบที่ใกล้ที่สุดB
คือสูงสุดและองค์ประกอบของB
ระยะทางไปยังองค์ประกอบที่ใกล้ที่สุดของA
สูงสุดและจากนั้นใช้ระยะทางสูงสุดเหล่านี้ กล่าวอีกนัยหนึ่งถ้าระยะห่าง Hausdorff d
ทุกองค์ประกอบของA
อยู่ในระยะห่างd
จากองค์ประกอบบางส่วนของB
และในทางกลับกัน
อินพุต
ข้อมูลที่คุณป้อนเป็นรายการจำนวนเต็มเดียว มันมีองค์ประกอบ0,1,2,3
ซึ่งมีความหมายว่าดัชนีที่กำหนดของรายการเป็นองค์ประกอบของค่าA
มิได้B
เพียงA
เท่านั้นB
หรือทั้งสองอย่างและA
B
ตัวอย่างเช่นการป้อนข้อมูล[0,1,1,0,2,3]
หมายความว่าA = {1,2,5}
และB = {4,5}
ถ้าเราใช้การจัดทำดัชนีแบบ 0 (ซึ่งไม่สร้างความแตกต่างเนื่องจากตัวชี้วัดของเราเป็นค่าคงที่การแปล)
เอาท์พุต
ผลลัพธ์ของคุณคือระยะห่างระหว่าง Hausdorff A
และB
; 3
ในตัวอย่างข้างต้นก็คือ -1
หากตั้งอย่างใดอย่างหนึ่งเป็นที่ว่างเปล่าแล้วระยะทางที่ไม่ได้กำหนดไว้และคุณจะกลับมา
กฎระเบียบ
คุณสามารถเขียนโปรแกรมเต็มรูปแบบหรือฟังก์ชั่น จำนวนไบต์ต่ำสุดที่ชนะและช่องโหว่มาตรฐานไม่ได้รับอนุญาต
กรณีทดสอบ
[] -> -1
[0] -> -1
[0,1,0] -> -1
[2,0,0,2] -> -1
[0,1,2,3] -> 1
[0,3,3,0,0,0,0,3] -> 0
[1,0,0,1,0,0,1,3,1] -> 7
[1,0,0,0,0,3,0,0,0,0,2] -> 5
[0,1,1,3,1,3,2,1,1,3,0,3] -> 2
[2,2,2,1,2,0,3,1,3,1,0,3] -> 3
[1,3,0,2,0,2,2,1,0,3,2,1,1,2,2] -> 2
[1,0,1,1,2,0,1,2,3,1,0,0,0,1,2,0] -> 4
A
อย่างอยู่ใกล้กับองค์ประกอบหนึ่งB
แต่มีองค์ประกอบB
ที่อยู่ไกลมากA
(ตัวอย่างเช่นหากA
เป็นส่วนย่อยของB
) ในกรณีนั้นสูตรสั้นไม่ถูกต้อง
max(max(min(d(a, b) for b in B) for a in A))
ควรจะเพียงพอ เพราะนี่คือd(a,b)
คืนค่าสัมบูรณ์ดังนั้นทั้งสองฟังก์ชั่นสูงสุดจะส่งกลับจำนวนเดียวกันทุกครั้ง