समस्या
जावास्क्रिप्ट फ़ंक्शन जो दो सरणियों में लेता है, पहले और दूसरे तर्क के रूप में धकेला और पॉप किया जाता है। इन दोनों सरणियों में अद्वितीय तत्वों से युक्त होने की गारंटी है।
हमारे फ़ंक्शन को सही वापस आना चाहिए यदि और केवल अगर यह प्रारंभिक रूप से खाली स्टैक पर पुश और पॉप संचालन के अनुक्रम का परिणाम हो सकता है, अन्यथा झूठा।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const pushed =[1, 2, 3, 4, 5];const popped =[4, 5, 3, 2, 1];
तब आउटपुट होना चाहिए -
कॉन्स्ट आउटपुट =सत्य;
आउटपुट स्पष्टीकरण
हम निम्नलिखित क्रम कर सकते हैं -
पुश (1), पुश (2), पुश (3), पुश (4), पॉप () -> 4, पुश (5), पॉप () -> 5, पॉप () -> 3, पॉप () -> 2, पॉप () -> 1
उदाहरण
इसके लिए कोड होगा -
कॉन्स पुश =[1, 2, 3, 4, 5]; कॉन्स्ट पॉप =[4, 5, 3, 2, 1]; कॉन्स्ट वैलिडेट सीक्वेंस =(धक्का =[], पॉप्ड =[]) => { चलो पुशइंडेक्स =0 पॉपडइंडेक्स =0 कॉन्स्ट स्टैक =[] जबकि (पुशइंडेक्स <पुश। लम्बाई) {अगर (स्टैक [स्टैक। लम्बाई - 1]! ==पॉपड [पॉपइंड इंडेक्स]) {स्टैक। पुश (पुश [पुशइंडेक्स ++]) } और { stack.pop() poppedIndex +=1 } } जबकि (stack.length) { if (stack.pop() !==popped[poppedIndex++]) { return false } } true return;};console.log( मान्य अनुक्रम (धक्का दिया, पॉप किया गया));
आउटपुट
और कंसोल में आउटपुट होगा -
<पूर्व>सत्य