function isPalindrome_recursion(str: string, left: number, right: number): boolean {
if (left >= right) {
return true;
}
if (str[left] != str[right]) {
return false;
}
return isPalindrome_recursion(str, left + 1, right - 1);
}
function isPalindrome_non_recursion(str: string): boolean {
let left: number = 0,
right: number = str.length - 1;
while (left < right) {
if (str[left] != str[right]) {
return false;
}
left++, right--;
}
return true;
}
let str1 = 'a';
let str2 = 'aba';
let str3 = 'abcd';
console.log(isPalindrome_recursion(str1, 0, str1.length - 1));
console.log(isPalindrome_recursion(str2, 0, str2.length - 1));
console.log(isPalindrome_recursion(str3, 0, str3.length - 1));
let str4 = 'a';
let str5 = 'aba';
let str6 = 'abcd';
console.log(isPalindrome_recursion(str4, 0, str4.length - 1));
console.log(isPalindrome_recursion(str5, 0, str5.length - 1));
console.log(isPalindrome_recursion(str6, 0, str6.length - 1));