判断回文字符串三种方法;

1,935 阅读1分钟

利用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
}