মান লিজিয়ে, আমাদের কাছে একটি কমা সেপারেটেড স্ট্রিং আছে শব্দগুলোর এইভাবে −
const str = 'JAY, ROB';
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একমাত্র এই ধরনের একটি স্ট্রিং নেয়। ফাংশনটি স্ট্রিংর শব্দগুলোর থেকে একটি নতুন শব্দ তৈরি করতে পারে যেখানে পূর্ববর্তী অ্যালফাবেট সবসময় পরবর্তী অ্যালফাবেটের চেয়ে বড় বা সমান (যেমন A, B-র চেয়ে বড়)
উদাহরণস্বরূপ, উপরের স্ট্রিং-এ আমরা JAY-এর প্রথম অক্ষরকে ROB-এর প্রথম অক্ষরের সাথে তুলনা করব।
যেহেতু J, R-এর সাথে তুলনায় আগে আসে, নতুন শব্দের প্রথম অক্ষর হবে J। দ্বিতীয়টি তুলনায়, যেহেতু A, R-এর আগে আসে তাই এটি দ্বিতীয় অক্ষর হবে, তৃতীয় অক্ষর একইভাবে R হবে।
সুতরাং, চূড়ান্ত শব্দটি হবে 'JAROBY',
লক্ষ্য করুন যে, এই উদাহরণে আমরা শুধু দুটি শব্দের স্ট্রিং নিয়েছি, কিন্তু আমাদের এমন সমাধান লিখতে হবে যা দুইটির বেশি শব্দের সাথে কাজ করতে পারে।
উদাহরণ
এটির জন্য কোড হবে −
const str = `JAY,ROB,APPLE,AAKO`; const specialSort = (str = '') => { let len = str.replace(/,/g, "").length; const sorter = (str, b) => { if(str === "" || str === null) return 1; if(b === "" || b === null) return −1; if(str === b) return 0; return str < b ? −1 : 1; }; let res = ""; let sorted = str.split(",").sort(sorter); while (res.length < len){ res += sorted[0][0]; sorted[0] = sorted[0].slice(1); sorted = sorted.sort(sorter); } return res; }; console.log(specialSort(str));আউটপুট
কনসোলে আউটপুট হবে −
AAAJAKOPPLEROBY