समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो एकल वर्णों की एक सरणी लेता है, गिरफ्तारी, पहले और एकमात्र तर्क के रूप में।
सरणी में केवल 4 वर्ण हो सकते हैं, वे हैं -
- 'N' → का अर्थ उत्तर दिशा है
- 'S' → दक्षिण दिशा के लिए खड़ा है
- 'W' → पश्चिम दिशा के लिए खड़ा है
- 'E' → का अर्थ पूर्व दिशा है
प्रत्येक वर्ण उस विशेष दिशा में इकाई दूरी की चाल को निर्दिष्ट करता है। और यदि सरणी में कहीं भी, दो विपरीत दिशाएं, [('S' और 'N') या ('E' और 'W')] आसन्न दिखाई देती हैं, तो वे एक दूसरे की गति को रद्द कर देती हैं। इसलिए, हमारे फ़ंक्शन को पूरे सरणी के आंदोलन की परिणामी दिशा का पता लगाना चाहिए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
इनपुट
const arr = ['N', 'S', 'S', 'E', 'W', 'N', 'W'];
आउटपुट
const output = 'W';
आउटपुट स्पष्टीकरण
'N' और 'S' एक दूसरे को रद्द कर देंगे 'E' और 'W' एक दूसरे को रद्द कर देंगे और फिर अंत में 'N' और 'S' एक दूसरे को केवल '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']