আমাদের একটি ফাংশন লিখতে হবে, বলুন isEqual() যা যুক্তি হিসাবে দুটি স্ট্রিং নেয় এবং উভয়ই তাদের ক্রম এবং ক্ষেত্রে স্বাধীনভাবে একই অক্ষর ধারণ করে কিনা তা পরীক্ষা করে।
যেমন −
const first = 'Aavsg'; const second = 'VSAAg'; isEqual(first, second); //true
পদ্ধতি:1 অ্যারে ব্যবহার করে
এই পদ্ধতিতে আমরা স্ট্রিংগুলিকে অ্যারেতে রূপান্তর করি, Array.prototype.sort() পদ্ধতি ব্যবহার করি, সেগুলিকে আবার স্ট্রিংয়ে রূপান্তর করি এবং সমতা পরীক্ষা করি৷
এর জন্য কোড হবে −
উদাহরণ
const first = 'Aavsg'; const second = 'VSAAg'; const stringSort = function(){ return this.split("").sort().join(""); } String.prototype.sort = stringSort; const isEqual = (first, second) => first.toLowerCase().sort() === second.toLowerCase().sort(); console.log(isEqual(first, second));
পদ্ধতি 2:একটি মানচিত্র ব্যবহার করা
এই পদ্ধতিতে আমরা একই সময়ে উভয় স্ট্রিংকে পুনরাবৃত্তি করি, অক্ষর ফ্রিকোয়েন্সিগুলিকে এমএপি-তে এইরকম মান সহ সংরক্ষণ করি -
-1, if it appears in the first string, +1, if it appears in the second string,
শেষ পর্যন্ত, যদি সমস্ত কী 0 যোগ করে, আমরা উপসংহারে পৌঁছেছি যে স্ট্রিংগুলি একই রকম অন্যথায় নয়৷
এর জন্য কোড হবে −
উদাহরণ
const first = 'Aavsg'; const second = 'VSAAg'; const isEqual = (first, second) => { if(first.length !== second.length){ return false; } first = first.toLowerCase(); second = second.toLowerCase(); const map = {}; for(ind in first){ if(map[first[ind]]){ map[first[ind]]++; }else{ map[first[ind]] = 1; } if(map[second[ind]]){ map[second[ind]]--; }else{ map[second[ind]] = -1; } }; return Object.values(map).reduce((acc, val) => val === 0 && acc, true); }; console.log(isEqual(first, second));
আউটপুট
উভয়ের জন্য কনসোলে আউটপুট হবে −
true