কম্পিউটার

জাভাস্ক্রিপ্টে অক্ষরের ন্যূনতম মুছে ফেলার যোগফল


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা ইংরেজি ছোট হাতের বর্ণমালার দুটি স্ট্রিং, str1 এবং str2 যথাক্রমে প্রথম এবং দ্বিতীয় আর্গুমেন্ট হিসেবে নেয়৷

আমাদের ফাংশন দুটি স্ট্রিং সমান করতে মুছে ফেলা অক্ষরের সর্বনিম্ন ASCII যোগফল খুঁজে বের করে ফেরত দেয়।

উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয়

ইনপুট

const str1 ='sea';const str2 ='খাওয়া';

আউটপুট

const আউটপুট =231;

আউটপুট ব্যাখ্যা

"সমুদ্র" থেকে "s" মুছে দিলে যোগফলের সাথে "s" (115) এর ASCII মান যোগ হয়।

"eat" থেকে "t" মুছে দিলে যোগফলের সাথে 116 যোগ হয়।

শেষে, উভয় স্ট্রিং সমান, এবং 115 + 116 =231 হল সর্বনিম্ন যোগফল এটি অর্জন করা সম্ভব৷

উদাহরণ

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

const str1 ='sea';const str2 ='eat';const minimumSum =(str1 ='', str2 ='') => { const chartCode =(s ='') => { let code =0 (s এর consst c) { কোড +=c.charCodeAt(0) } রিটার্ন কোড } লেট 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)) } অন্য যদি (str1 [ind1] ===str2[ind2]) { current[ind2] =prev[ind2 + 1] } অন্য { current[ind2] =Math.min( prev[ind2] + (str1[ind1]).charCodeAt(0 ), বর্তমান[ind2 + 1] + (str2[ind2]).charCodeAt(0), ) } } পূর্ববর্তী =বর্তমান } রিটার্ন পূর্ববর্তী[0]}console.log(minimumSum(str1, str2)); 

আউটপুট

231

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

  2. জাভাস্ক্রিপ্টে অ-শব্দ অক্ষরগুলি কীভাবে সরিয়ে ফেলা যায়?

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

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