验证回文串

验证回文串

方案 1

使用指针方式

/**
 *
 * @param {string} s 字符串
 * @returns {boolean}
 */
const isPalindrome1 = function (s) {
  const isValid = (c) => (c >= "a" && c <= "z") || ("c" >= "0" && c <= "9");

  let i = 0,
    j = s.length - 1;

  while (j >= i) {
    const left = s[i].toLowerCase(),
      right = s[j].toLowerCase();

    if (!isValid(left)) {
      i++;
    } else if (!isValid(right)) {
      j--;
    } else if (left === right) {
      i++;
      j--;
    } else {
      return false;
    }
  }
  return true;
};

console.log(isPalindrome1("racecar")); // true
console.log(isPalindrome1("level")); // true
console.log(isPalindrome1("hello")); // false

自带的数组反转

function isPalindrome2(str) {
  // 将字符串转换为小写并去除非字母数字字符
  str = str.toLowerCase().replace(/[^a-z0-9]/g, "");
  // 反转字符串并与原字符串比较
  return str === str.split("").reverse().join("");
}

验证回文串_第1张图片

你可能感兴趣的:(前端,javascript,前端,开发语言)