কম্পিউটার

জাভাস্ক্রিপ্টে দুটি স্ট্রিংয়ের মধ্যে দীর্ঘতম সাধারণ ধারাবাহিক সাবস্ট্রিং খোঁজা


আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা দুটি স্ট্রিংয়ে নেয়। আসুন তাদের str1 এবংstr2 বলি। তারপর ফাংশনটি দীর্ঘতম পরপর স্ট্রিং খুঁজে বের করতে হবে যা উভয় ইনপুট স্ট্রিং-এর জন্য সাধারণ এবং সেই সাধারণ স্ট্রিংটি ফেরত দেয়।

উদাহরণস্বরূপ -

যদি ইনপুট স্ট্রিং −

হয়
const str1 = 'ABABC';
const str2 = 'BABCA';

তারপর আউটপুট স্ট্রিং −

হওয়া উচিত
const output = 'BABC';

উদাহরণ

নিম্নলিখিত কোড -

const str1 = 'ABABC';
const str2 = 'BABCA';
const findCommon = (str1 = '', str2 = '') => {
   const s1 = [...str1];
   const s2 = [...str2];
   const arr = Array(s2.length + 1).fill(null).map(() => {
      return Array(s1.length + 1).fill(null);
   });
   for (let j = 0; j <= s1.length; j += 1) {
      arr[0][j] = 0;
   }
   for (let i = 0; i <= s2.length; i += 1) {
      arr[i][0] = 0;
   }
   let len = 0;
   let col = 0;
   let row = 0;
   for (let i = 1; i <= s2.length; i += 1) {
      for (let j = 1; j <= s1.length; j += 1) {
         if (s1[j - 1] === s2[i - 1]) {
            arr[i][j] = arr[i - 1][j - 1] + 1;
         }
         else {
            arr[i][j] = 0;
         }
         if (arr[i][j] > len) {
            len = arr[i][j];
            col = j;
            row = i;
         }
      }
   }
   if (len === 0) {
      return '';
   }
   let res = '';
   while (arr[row][col] > 0) {
      res = s1[col - 1] + res;
      row -= 1;
      col -= 1;
   }
   return res;
};
console.log(findCommon(str1, str2));

আউটপুট

নিম্নোক্ত কনসোলে আউটপুট -

BABC

  1. জাভাস্ক্রিপ্ট ব্যবহার করে অন্য স্ট্রিং-এ একটি অক্ষরের দীর্ঘতম ধারাবাহিক চেহারা খোঁজা

  2. জাভাস্ক্রিপ্টে দুটি স্ট্রিংয়ের মধ্যে অস্বাভাবিক অক্ষর খোঁজা এবং ফিরিয়ে দেওয়া

  3. জাভাস্ক্রিপ্টে দীর্ঘতম পরপর যোগদান করা

  4. পাইথনে দুটির বেশি স্ট্রিং থেকে দীর্ঘতম সাধারণ সাবস্ট্রিং কীভাবে খুঁজে পাবেন?