আমাদের একটি ফাংশন লিখতে হবে, বলুন 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