কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে দুটি স্ট্রিং সমান করার জন্য ন্যূনতম ASCII ডিলিশন সাম

সমস্যা

দুটি ইংরেজি ছোট হাতের অক্ষরের স্ট্রিং str1 এবং str2 দেওয়া আছে। স্ট্রিং দুটিকে সমান করার জন্য কতগুলো ক্যারেক্টার ডিলিট করতে হবে এবং ডিলিট করা ক্যারেক্টারগুলোর ASCII মানগুলোর যোগফল ন্যূনতম কত, তা বের করতে হবে।

উদাহরণ:

ইনপুট

const str1 = 'sea'; const str2 = 'eat';

আউটপুট

const output = 231;

ব্যাখ্যা

"sea" থেকে 's' (ASCII 115) ডিলিট করা এবং "eat" থেকে 't' (ASCII 116) ডিলিট করলে উভয় স্ট্রিং "ea" হয়ে যায়। মোট যোগফল ১১৫ + ১১৬ = ২৩১।

উদাহরণ কোড

const str1 = 'sea'; const str2 = 'eat'; const minimumSum = (str1 = '', str2 = '') => {   const chartCode = (s = '') => {     let code = 0;     for (const c of s) { code += c.charCodeAt(0); }     return code; };   let prev = new Array(str2.length + 1).fill(0);   for (let ind1 = str1.length; ind1 >= 0; ind1--) {     const current = new Array(str2.length + 1).fill(0);     for (let ind2 = str2.length; ind2 >= 0; ind2--) {       if (ind1 === str1.length) { current[ind2] = chartCode(str2.slice(ind2)); }       else if (ind2 === str2.length) { current[ind2] = chartCode(str1.slice(ind1)); }       else if (str1[ind1] === str2[ind2]) { current[ind2] = prev[ind2 + 1]; }       else { current[ind2] = Math.min(prev[ind2] + str1[ind1].charCodeAt(0), current[ind2 + 1] + str2[ind2].charCodeAt(0)); }     }     prev = current;   }   return prev[0]; }; console.log(minimumSum(str1, str2));

আউটপুট

231
  1. জাভাস্ক্রিপ্টে ন্যূনতম স্প্যানিং ট্রি (MST)

  2. জাভাস্ক্রিপ্টে নন-ওয়ার্ড ক্যারেক্টার সরানোর পদ্ধতি

  3. জাভাস্ক্রিপ্ট রেজেক্সে \w বনাম \W পার্থক্য

  4. জাভাস্ক্রিপ্টে এস্কেপ ক্যারেক্টারস