সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি এলোমেলো ইংরেজি বর্ণমালার স্ট্রিং, str, প্রথম আর্গুমেন্ট হিসাবে এবং স্ট্রিংগুলির একটি অ্যারে, arr, দ্বিতীয় আর্গুমেন্ট হিসাবে নেয়৷
আমাদের ফাংশনের কাজ হল স্ট্রিং স্ট্র থেকে কিছু অক্ষর মুছে ফেলার চেষ্টা করা এবং অ্যারে অ্যারেতে বিদ্যমান কোন দীর্ঘতম শব্দটি তৈরি হতে পারে তা পরীক্ষা করা। আমাদের ফাংশনটি সম্ভাব্য দীর্ঘতম স্ট্রিং প্রদান করবে৷
যদি এমন কোনো স্ট্রিং না থাকে, তাহলে আমাদের একটি খালি স্ট্রিং ফেরত দেওয়া উচিত।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
const str = 'sdgfdfghdjh'; const arr = ['sdf', 'fghj', 'gfdfg', 'absc', 'a', 'hasl'];
তারপর আউটপুট −
হওয়া উচিতconst output = 'gfdfg';
আউটপুট ব্যাখ্যা:
যদিও অ্যারের প্রথম এবং দ্বিতীয় উপাদান স্ট্রিং থেকে অক্ষর মুছে ফেলার মাধ্যমে তৈরি করা যেতে পারে কিন্তু ‘gfdfg’ হল দীর্ঘতম স্ট্রিং (5) যা আমরা স্ট্রিং স্ট্র থেকে তৈরি করতে পারি।
উদাহরণ
এর জন্য কোড হবে −
const str = 'sdgfdfghdjh'; const arr = ['sdf', 'fghj', 'gfdfg', 'absc', 'a', 'hasl']; const findLongestWord = (str = '', arr = []) => { arr.sort((a, b) => { if (a.length !== b.length) { return b.length - a.length; }; return a.localeCompare(b); }); for(const word of arr){ let index = -1; for(const char of word){ index = str.indexOf(char, index + 1); if(index < 0){ break; }; }; if (index >= 0){ return word; }; }; return ''; }; console.log(findLongestWord(str, arr));
কোড ব্যাখ্যা:
আমরা যে ধাপগুলো অতিক্রম করেছি তা হল −
-
প্রথমে দৈর্ঘ্য অনুসারে অ্যারে সাজান তারপর আভিধানিক ক্রম।
-
প্রতিটি শব্দের মধ্যে দিয়ে লুপ করুন, যদি প্রতিটি শব্দের অক্ষর স্ট্রিং স্ট্রিং-এ না থাকে তাহলে আমরা কেবল ফিরে আসি।
-
এবং যদি প্রতিটি শব্দ মিলে যায়, তাহলে আমরা শব্দটি ফেরত দিই।
এবং যেহেতু আমরা ইতিমধ্যেই আমাদের অভিধান বাছাই করেছি, আমরা গ্যারান্টি দিতে পারি যে প্রথম ম্যাচটিই আমাদের উত্তর৷
আউটপুট
কনসোলে আউটপুট হবে −
gfdfg