परिचय
इस चुनौती में, आपका कार्य एक प्रोग्राम लिखना है जो यह तय करता है कि क्या दिए गए दो पेड़ आइसोमोर्फिक हैं। एक पेड़ का अर्थ है एक निर्देशित चक्रीय ग्राफ, जहां हर नोड में जड़ के अलावा एक आउटगोइंग एज होता है, जिसमें कोई नहीं होता है। दो पेड़ आइसोमॉर्फिक हैं यदि एक को नोड्स का नाम देकर दूसरे में बदला जा सकता है। उदाहरण के लिए, दो पेड़ (जहां हर किनारे की ओर इशारा करते हैं)
0 0
/|\ /|\
1 3 4 1 2 5
|\ /|
2 5 3 4
आसानी से आइसोमॉर्फिक होने के लिए देखा जाता है।
हम L
निम्नलिखित तरीके से एक पेड़ को nonnegative पूर्णांक की सूची के रूप में एन्कोड करते हैं । पेड़ की जड़ में लेबल होता है 0
, और इसमें नोड्स भी होते हैं 1,2,...,length(L)
। प्रत्येक नोड i > 0
में एक आउटगोइंग एज होता है L[i]
(1-आधारित इंडेक्सिंग का उपयोग करके)। उदाहरण के लिए, सूची (तत्वों के तहत दिए गए सूचकांक के साथ)
[0,0,1,3,2,2,5,0]
1 2 3 4 5 6 7 8
पेड़ को घेरता है
0
/|\
1 2 8
| |\
3 5 6
| |
4 7
इनपुट
आपके इनपुट्स मूल प्रारूप या आपकी भाषा में दिए गए नॉनवेजेटिव पूर्णांकों की दो सूचियाँ हैं। वे ऊपर निर्दिष्ट तरीके से दो पेड़ों को एनकोड करते हैं। आप उनके बारे में निम्नलिखित शर्तों को मान सकते हैं:
- वे खाली नहीं हैं।
- उनकी लंबाई समान है।
- प्रत्येक सूची सभी (1-आधारित) सूचकांकों के लिए
L
संतुष्ट करती है ।L[i] < i
i
उत्पादन
यदि पेड़ आइसोमोर्फिक हैं, और नहीं तो एक मिथ्या मूल्य, आपका उत्पादन एक सत्य मूल्य होगा।
नियम और स्कोरिंग
आप एक पूर्ण कार्यक्रम या एक फ़ंक्शन लिख सकते हैं। सबसे कम बाइट गिनती जीतता है, और मानक खामियों को रोक दिया जाता है। कोई समय प्रतिबंध नहीं हैं, लेकिन बिल्ट-इन इंसिडेंस जो पेड़ या ग्राफ आइसोमॉर्फिज़्म को तय करते हैं, को रोक दिया जाता है।
परीक्षण के मामलों
सत्य दृष्टांत
[0] [0]
[0,1,2,1] [0,1,1,3]
[0,1,1,3,3] [0,1,2,2,1]
[0,1,0,1,2,3,3,0] [0,0,2,1,0,4,2,1]
[0,1,2,3,1,2,3,0,8] [0,1,0,3,3,4,4,7,7]
झूठा उदाहरण
[0,0] [0,1]
[0,1,2,0,3,3,4] [0,1,2,3,0,4,3]
[0,1,0,1,2,3,3,0] [0,0,2,1,0,5,2,1]
[0,1,1,0,1,3,2,1,5] [0,1,0,3,3,3,2,5,2]
[0,1,2,3,1,2,3,0,8] [0,1,0,1,4,4,5,6,6]
[0,1,0,2,0,3,0,4,0,5] [0,0,2,1,0,3,4,0,0,9]