সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি একক অক্ষর, arr, প্রথম এবং একমাত্র যুক্তি হিসাবে নেয়৷
অ্যারেতে শুধুমাত্র 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']