क्या यह कैक्टस है?


23

ग्राफ सिद्धांत में, एक कैक्टस एक जुड़ा हुआ ग्राफ होता है जैसे कि किसी एक ग्राफ में सबसे अलग दो सरल चक्र साझा करते हैं।

यहाँ 3 सरल चक्रों के साथ कैक्टस है जो धराशायी लाइनों के साथ उल्लिखित है।

कैक्टस ग्राफ

निम्नलिखित ग्राफ ऊपर चित्रित एक के समान है, लेकिन कैक्टस नहीं है क्योंकि लाल रंग में लेबल किए गए दो शीर्षों को दो सरल चक्रों द्वारा साझा किया जाता है।

कैक्टस ग्राफ नहीं

चीजें थोड़ा पेचीदा हो सकती हैं, उदाहरण के लिए निम्नलिखित ग्राफ:

साथ ही कैक्टस का ग्राफ भी नहीं

कैक्टस की तरह लग सकता है लेकिन ऐसा नहीं है। यह निम्नलिखित चक्र को उजागर करके दिखाया जा सकता है:

हाइलाइट किया हुआ चक्र

यह चक्र ग्राफ में बहुत अधिक स्पष्ट चक्रों के साथ एक से अधिक बिंदुओं को साझा करता है।

परिभाषाएं

  • एक जुड़ा हुआ ग्राफ एक ऐसा ग्राफ है जो कि किसी भी दो कोने के बीच कम से कम एक पथ पर मौजूद होता है।

  • एक साधारण चक्र एक ग्राफ पर एक पथ है जो एक ही शीर्ष पर शुरू और समाप्त होता है और एक बार से अधिक बार कोई शीर्ष पर नहीं जाता है।

  • एक साधारण ग्राफ एक अप्रत्यक्ष, अनवील्ड ग्राफ होता है जैसे कि कोई कोने दो एक दूसरे से एक से अधिक किनारे से नहीं जुड़े होते हैं और कोई भी शीर्ष स्वयं से जुड़ा नहीं होता है। एक साधारण ग्राफ सबसे बुनियादी प्रकार का ग्राफ है और जब वे ग्राफ कहते हैं तो ज्यादातर लोगों का मतलब होता है।

कार्य

इनपुट के रूप में एक सरल ग्राफ लें और निर्णय लें कि क्या यह कैक्टस ग्राफ है। आपको दो अलग-अलग मानों को एक के लिए सही और एक को गलत के लिए आउटपुट देना चाहिए। आप किसी भी प्रारूप में इनपुट ले सकते हैं जो आप फिट देखते हैं।

यह इसलिए आपको अपने उत्तरों की बाइट संख्या को कम करने का लक्ष्य रखना चाहिए।

परीक्षण के मामलों

आसन्न मैट्रिक्स के रूप में परीक्षण के मामले


क्या आप मेरे समाधान पर एक नज़र डाल सकते हैं, मुझे बताएं कि क्या यह वैध है? मैं स्पष्ट पैटर्न की तरह गिर गया था और यह भी स्पष्ट था कि मैंने कुछ याद किया है।
झबरा

@ शैगी मैं जावास्क्रिप्ट नहीं पढ़ सकता, यदि आप इसे समझाते हैं तो मैं सक्षम हो सकता हूं।
गेहूं जादूगर

मैं कोशिश कर सकता हूँ। मैं 2 चीजों के लिए जाँच कर रहा हूँ: 1) क्या eवास्तव में एक तत्व vशामिल है और क्या वास्तव में 2 शामिल हैं और vपहले तत्व के बराबर है e? 2) या vप्रत्येक तत्व के पहले तत्वों के संघ सेट के बराबर है e? दूसरा परीक्षण मामला प्रथम जांच ( v=[1,2]=e[0]=[1,2]) और अन्य परीक्षण मामलों से गुजरता है, जो कि दूसरे से मेल खाते हुए होना चाहिए, उदाहरण के लिए केस # 4 v=[1,2,3,4,5,6]=[e[0][0],e[1][0],e[2][0],e[4][0]]=[1,2,3,4,5,6]:।
झबरा

@ शागि यह उदाहरण के लिए काम नहीं करता है पहला प्रदान किया गया आरेख विफल रहता है। console.log(f([1,2,3,4,5,6,7,8,9,10,11,12,13])([[1,2],[1,3],[3,4],[2,4],[3,5],[5,6],[6,7],[7,8],[8,5],[7,9],[9,10],[10,11],[11,7],[8,12],[8,13]]))
गेहूं जादूगर

वह लौटना चाहिए trueया false?
झबरा

जवाबों:


9

गणितज्ञ, 62 बाइट्स

Sort@#==#⋃#&[Join@@FindCycle[#,∞,All]]&&ConnectedGraphQ@#&

चेक: (find all cycles, there are no duplicate edges)और(The graph is a connected graph)


1
gहोना चाहिए #, है ना?
नगीनिस

6
तो आप मुझे बता रहे हैं कोई isCactusबिल्ट नहीं है ? मैं निराश हूँ।
आरोन

किसी को एक लिखना चाहिए।
ड्रेको

आपको अलग उत्तर के रूप में गणितज्ञ सरलीकृत रखना चाहिए।
mbomb007

3
@Aaron ऐसा होगा CactusQअगर यह अस्तित्व में है, मुझे विश्वास है।
नीदजजकोब
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.