এই টিউটোরিয়ালে আমরা শিখব কিভাবে একটি অ্যারে প্যালিনড্রোম (সামনে থেকে পড়লে এবং পেছন থেকে পড়লে একই) কিনা তা চেক করা যায়।
প্যালিনড্রোম অ্যারে কী?
একটি অ্যারে প্যালিনড্রোম হয় যদি arr[i] === arr[length - 1 - i] সমস্ত i এর জন্য সত্য হয়।
উদাহরণ
[1, 5, 7, 4, 15, 4, 7, 5, 1] // প্যালিনড্রোম ✓ [1, 2, 3, 4, 5] // প্যালিনড্রোম ✗
সমাধান
const isPalindrome = (arr) => {
const len = arr.length;
const mid = Math.floor(len / 2);
for (let i = 0; i < mid; i++) {
if (arr[i] !== arr[len - 1 - i]) {
return false; // মিসম্যাচ পাওয়া গেল
}
}
return true; // সব মিল খাওয়া গেল
};
// টেস্ট কেস
console.log(isPalindrome([1, 5, 7, 4, 15, 4, 7, 5, 1])); // true
console.log(isPalindrome([1, 2, 3, 2, 1])); // true
console.log(isPalindrome([1, 2, 3, 4, 5])); // false
console.log(isPalindrome(['a', 'b', 'a'])); // true
console.log(isPalindrome([])); // true (খালি অ্যারে)
console.log(isPalindrome([42])); // true (একক উপাদান)
অ্যাডভান্সড: ジェネরিক ফাংশন
const isPalindromeGeneric = (arr, equals = (a, b) => a === b) => {
let left = 0;
let right = arr.length - 1;
while (left < right) {
if (!equals(arr[left], arr[right])) {
return false;
}
left++;
right--;
}
return true;
};
// অবজেক্টের জন্য কাস্টম তুলনা
console.log(isPalindromeGeneric(
[{id: 1}, {id: 2}, {id: 1}],
(a, b) => a.id === b.id
)); // true
উৎপাদন
true