समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो एकल वर्णों की एक सरणी लेता है, एआर, पहले और एकमात्र तर्क।
सरणी में केवल 4 वर्ण हो सकते हैं, वे हैं -
- 'N' → का अर्थ उत्तर दिशा है
- 'S' → दक्षिण दिशा के लिए खड़ा है
- 'W' → पश्चिम दिशा के लिए खड़ा है
- 'E' → का अर्थ पूर्व दिशा है
प्रत्येक वर्ण उस विशेष दिशा में इकाई दूरी की चाल को निर्दिष्ट करता है। और यदि सरणी में कहीं भी, दो विपरीत दिशाएं, [('S' और 'N') या ('E' और 'W')] आसन्न दिखाई दें, तो वे एक दूसरे की गति को रद्द कर देती हैं। इसलिए, हमारे फ़ंक्शन को पूरे सरणी के आंदोलन की परिणामी दिशा का पता लगाना चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = ['N', 'S', 'S', 'E', 'W', 'N', 'W'];
तब आउटपुट होना चाहिए -
const output = 'W';
आउटपुट स्पष्टीकरण
'एन' और 'एस' एक दूसरे को रद्द कर देंगे 'ई' और 'डब्ल्यू' एक दूसरे को रद्द कर देंगे और फिर अंत में 'एन' और 'एस' एक दूसरे को रद्द कर देंगे और केवल 'डब्ल्यू' को पीछे छोड़ देंगे।
उदाहरण
निम्नलिखित कोड है -
const arr = ['N', 'S', 'S', 'E', 'W', 'N', 'W']; const cancelDirections = (arr = []) => { let str = arr.join(''); while(str.includes('NS') || str.includes('SN') || str.includes('EW') || str.includes('WE')){ str = str.replace('NS', ''); str = str.replace('SN', ''); str = str.replace('EW', ''); str = str.replace('WE', ''); }; return str.split(''); }; console.log(cancelDirections(arr));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
['W']