कल्पना कीजिए कि आपके पास एक पूर्णांक है, जिनके गैर-नकारात्मक मान उसी सरणी में अन्य पदों के लिए संकेत हैं, केवल यह कि वे मान सुरंगों का प्रतिनिधित्व करते हैं, इसलिए यदि स्थिति A में मान धनात्मक है और स्थिति B की ओर इंगित करता है, तो स्थिति में मान बी को भी सकारात्मक होना चाहिए और सुरंग के दोनों सिरों का प्रतिनिधित्व करने के लिए स्थिति ए की ओर इशारा करना चाहिए। इसलिए:
चुनौती
- पूर्णांक के एक सरणी को देखते हुए, जांचें कि क्या सरणी प्रतिबंध के साथ एक सुरंग बनाने वाले सरणी के रूप में है और दो अलग-अलग, सत्य और गलत के लिए सुसंगत मूल्यों को वापस करता है।
- सरणी में मान गैर-सुरंग पदों के लिए शून्य से नीचे, और सुरंग पदों के लिए शून्य या अधिक होगा। यदि आपकी सरणी 1-अनुक्रमित है, तो शून्य मान एक गैर-टनल स्थिति का प्रतिनिधित्व करता है। गैर-सुरंग मानों की जाँच करने की आवश्यकता नहीं है।
- यदि एक सेल में एक सकारात्मक मूल्य खुद को इंगित करता है, तो यह एक गलत है। यदि A, B, B से C और C से A को इंगित करता है, तो यह एक गलत है। यदि एक सकारात्मक मान सरणी की सीमाओं से परे इंगित करता है, तो यह एक गलत है।
उदाहरण
निम्नलिखित उदाहरण 0-अनुक्रमित हैं:
[-1, -1, -1, 6, -1, -1, 3, -1, -1] Truthy (position 3 points to position 6 and vice versa)
[1, 0] Truthy (position 0 points to position 1 and vice versa)
[0, 1] Falsey (positions 0 and 1 point to themselves)
[4, 2, 1, -1, 0, -1] Truthy
[2, 3, 0, 1] Truthy
[1, 2, 0] Falsey (no circular tunnels allowed)
[-1, 2, -1] Falsey (tunnel without end)
[] Truthy (no tunnels, that's OK)
[-1, -2, -3] Truthy (no tunnels, that's OK)
[1, 0, 3] Falsey (tunnel goes beyond limits)
[1] Falsey (tunnel goes beyond limits)
[1, 0, 3, 7] Falsey (tunnel goes beyond limits)
यह कोड-गोल्फ है , इसलिए प्रत्येक भाषा की जीत के लिए सबसे छोटा कोड हो सकता है!
[0,1]और क्या [0,-1,2]देंगे?
[0,1]उदाहरणों में है। "अगर एक सेल में एक सकारात्मक मूल्य खुद को इंगित करता है, तो वह गलत है"
[2,3,0,1]
[0]?