परिचय
हॉसडॉर्फ़ दूरी एक मीट्रिक स्पेस की दो उप-समूहों के बीच अंतर को मापता है। सहज रूप से, एक मीट्रिक स्पेस बिल्ट-इन डिस्टेंस फ़ंक्शन के साथ कुछ सेट है; इस चुनौती में, हम साधारण दूरी के साथ प्राकृतिक संख्याओं का उपयोग करेंगे d(a, b) := abs(a - b)। दो गैर-खाली परिमित सेटों के बीच हॉसडॉर्फ दूरी 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))
पायथन की तरह संकेतन में। हॉसडॉर्फ दूरी की गणना उस तत्व के द्वारा की जा सकती है Aजिसके लिए निकटतम तत्व के लिए दूरी Bअधिकतम है, और जिस तत्व के Bलिए निकटतम तत्व की दूरी Aअधिकतम है, और फिर इन दूरी का अधिकतम ले। दूसरे शब्दों में, यदि हॉसडॉर्फ दूरी है 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-आधारित इंडेक्सिंग का उपयोग करते हैं (जिससे कोई फर्क नहीं पड़ता है, क्योंकि हमारे मैट्रिक्स अनुवाद इनवॉइस हैं)।
उत्पादन
आपका आउटपुट हौसडॉर्फ दूरी 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)पूर्ण मान लौटाता है, और इसलिए दोनों अधिकतम फ़ंक्शन हर बार एक ही संख्या वापस करेंगे।