অ্যারে সামনে থেকে পড়লে এবং পেছন থেকে পড়লে একই কিনা চেক করা (প্যালিনড্রোম অ্যারে)।
উদাহরণ
['a', 'b', 'c', 'b', 'a'] → true [4, 7, 7, 4] → true [7, 7, 7, 7, 7, 7] → true [1, 2, 3, 4, 5] → false
সমাধান
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;
};
// Two-pointer পদ্ধতি (আরো স্পষ্ট)
const isPalindromeTwoPointer = (arr) => {
let left = 0;
let right = arr.length - 1;
while (left < right) {
if (arr[left] !== arr[right]) return false;
left++;
right--;
}
return true;
};
// Every() ব্যবহার করে
const isPalindromeFP = (arr) =>
arr.every((val, i) => val === arr[arr.length - 1 - i]);
// টেস্ট
console.log(isPalindrome([1, 5, 7, 4, 15, 4, 7, 5, 1])); // true
console.log(isPalindrome([1, 2, 3, 4, 5])); // false
console.log(isPalindrome(['a', 'b', 'a'])); // true
console.log(isPalindrome([])); // true
জটিলতা
- সময়: O(n/2) = O(n)
- স্থান: O(1)
উৎপাদন
true