সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্ট্রিং অ্যারে নেবে। অ্যারেতে সব স্ট্রিং একই ক্যারেক্টার বা ক্যারেক্টার রিপিটিশন ধারণ করে, শুধু একটি স্ট্রিং ভিন্ন ক্যারেক্টার সেট ধারণ করে। ফাংশনটি সেটি খুঁজে বের করে রিটার্ন করবে।
উদাহরণস্বরূপ
যদি অ্যারে হয়:
['ba', 'abc', 'acb', 'bac', 'foo', 'bca', 'cab', 'cba' ]
তাহলে প্রয়োজনীয় স্ট্রিংটি হলো 'foo'।
স্ট্রিংতে স্পেইস থাকতে পারে। স্পেইস গুরুত্বপূর্ণ নয়, শুধু নন-স্পেইস সিম্বল গুরুত্বপূর্ণ। উদাহরণস্বরূপ, শুধু স্পেইস ধারণকারী স্ট্রিং খালি স্ট্রিংয়ের মত। গ্যারান্টিয়া আছে অ্যারেতে ৩টির অধিক স্ট্রিং থাকবে।
উদাহরণ
নিচে কোড দেওয়া হলো:
const arr = ['ba', 'abc', 'acb', 'bac', 'foo', 'bca', 'cab', 'cba' ];
const findOnlyUnique = (arr = []) => {
const first = [];
for(i = 0; i < arr.length; i++){
first.push(arr[i].toLowerCase().replace(/\s/g, '').split(''));
for (j = 0; j < arr[i].length; j++){
first[i].sort();
}
}
const second = [];
for (k = 0; k < arr.length; k++){
second.push(first[k].join());
}
second.sort();
const third = [];
if (second[1] !== second[second.length - 1]) {
third.push(second[second.length - 1]);
}else{
third.push(second[0]);
}
const last = [];
for(let n = 0; n < first.length; n++){
last.push(first[n].join(','));
}
return (arr[last.indexOf(third[0])]);
};
console.log(findOnlyUnique(arr));
আউটপুট
foo