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