मुझे एक साक्षात्कार के दौरान निम्नलिखित समस्या दी गई थी:
एक तार देता है जिसमें अन्य अल्फ़ान्यूमेरिक वर्णों के साथ परेंस का कुछ मिश्रण होता है (कोष्ठक या ब्रेसिज़ नहीं - केवल परेंस), उन सभी परनों की पहचान करें जिनमें कोई मेल नहीं है।
उदाहरण के लिए, स्ट्रिंग ") (एब)" में, सूचकांकों में 0 और 5 में ऐसे Parens होते हैं जिनका कोई मिलान नहीं होता है।
मैंने O (n) मेमोरी का उपयोग करते हुए एक कार्यशील O (n) समाधान को आगे रखा, एक स्टैक का उपयोग करके और एक बार स्ट्रेन से पार्न्स को जोड़ने और स्टैक से हटाने के बाद जब भी मुझे एक क्लोजिंग पेरेन का सामना करना पड़ा और स्टैक के शीर्ष समाहित हुआ। एक उद्घाटन पैरा।
बाद में, साक्षात्कारकर्ता ने नोट किया कि समस्या को निरंतर मेमोरी के साथ रैखिक समय में हल किया जा सकता है (जैसा कि इनपुट द्वारा लिया गया है इसके अलावा कोई अतिरिक्त मेमोरी उपयोग नहीं है।)
मैंने पूछा कि कैसे और उसने कहा कि बाईं ओर से एक बार स्ट्रिंग के माध्यम से जाने के बारे में सभी खुले हुए पार्न्स की पहचान करते हैं, और फिर दूसरी बार दाईं ओर से सभी करीबी पार्न की पहचान करते हैं .... या शायद यह दूसरा तरीका था। मुझे वास्तव में समझ नहीं आया और मैं उसे इसके माध्यम से हाथ पकड़ने के लिए नहीं कहना चाहता था।
क्या कोई उसके द्वारा सुझाए गए समाधान को स्पष्ट कर सकता है?