利用js API
function Palindrome(str) {
return str.split("").reverse().join("") === str
}
利用栈;
思路:
- 1.将字符的每个元素入栈;
- 2.入栈完毕以后,原字符的第一个位置的元素对应栈顶。
- 3.将栈中元素依次出栈,并连接成新字符
- 比较新字符和原来的字符是否相等
function Palindrome(str) {
let stack = []//模拟栈;
let len = str.length;
let start = 0;
let reverseStr = ''
do {
stack.push(str[start++])
}
while (start < len);
while (len-- > 0) {
reverseStr += stack.pop()
}
return reverseStr === str
}
利用双指针
- 1.设置左右两个指针;
- 2.左边指针指向第一个元素,右边指向最后一个元素
- 3.比较左右指针对应的元素是否相同,相同则将左指针向右移动,右指针向左移动,不同跳出循环返回false。重复3步骤
function Palindrome(str) {
let len = str.length;
let left = 0;
let right = len - 1;
let flg = true;
while (left < right) {
if (str[left] === str[right]) {
left++;
right--;
} else {
flg = false
break;
}
}
return flg
}