আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা দুটি স্ট্রিং তুলনা করতে পারে এবং তারা কতটা সমান তার শতাংশের সম্ভাবনা ফেরত দিতে পারে। শতাংশ দুটি স্ট্রিং-এর মধ্যে মিল রয়েছে এমন অনেকগুলি অক্ষরের পরিমাপ ছাড়া কিছুই হবে না৷
৷যদি তারা সম্পূর্ণ একই রকম হয় তাহলে আউটপুট 100 হওয়া উচিত, এবং যদি তাদের মধ্যে কোনো সাধারণ অক্ষর না থাকে তবে আউটপুট 0 হওয়া উচিত।
উদাহরণ
const calculateSimilarity = (str1 = '', str2 = '') => { let longer = str1; let shorter = str2; if (str1.length < str2.length) { longer = str2; shorter = str1; } let longerLength = longer.length; if (longerLength == 0) { return 1.0; } return +((longerLength - matchDestructively(longer, shorter)) / parseFloat(longerLength) * 100).toFixed(2); }; const matchDestructively = (str1 = '', str2 = '') => { str1 = str1.toLowerCase(); str2 = str2.toLowerCase(); let arr = new Array(); for (let i = 0; i <= str1.length; i++) { let lastValue = i; for (let j = 0; j <= str2.length; j++) { if (i == 0){ arr[j] = j; }else if(j > 0){ let newValue = arr[j - 1]; if(str1.charAt(i - 1) != str2.charAt(j - 1)) newValue = Math.min(Math.min(newValue, lastValue), arr[j]) + 1; arr[j - 1] = lastValue; lastValue = newValue; } } if (i > 0) arr[str2.length] = lastValue; } return arr[str2.length]; }; console.log(calculateSimilarity('Mathematics','Mathamatecs'));
আউটপুট
এটি নিম্নলিখিত আউটপুট −
তৈরি করবে[ [ 1, 10, 100 ], [ 1, 10, 200 ], [ 1, 10, 300 ], [ 1, 20, 100 ], [ 1, 20, 200 ], [ 1, 20, 300 ], [ 2, 10, 100 ], [ 2, 10, 200 ], [ 2, 10, 300 ], [ 2, 20, 100 ], [ 2, 20, 200 ], [ 2, 20, 300 ] ]