美文网首页数据解构和算法收藏
45.判断是否是回文字符串

45.判断是否是回文字符串

作者: wo不是黄蓉 | 来源:发表于2022-02-05 14:03 被阅读0次

day1:js基础->算法。
回文数

思路:使用双指针,双向移动。

  • abcba到中间位置该怎么判断?
    定义两个指针,start和end,当start = 0,end=len-1;start=end时往下进行比较,否则断定不是回文字符串。
  • 区分大小写时怎么判断?
    使用charCodeAt方法使用编码进行判断。
function isPalindromic(str) {
  let len = str.length;
//定义头指针和尾指针
  let i = 0,
    j = len - 1;
  while (i < j) {
    if (str[i].charCodeAt(0) != str[j].charCodeAt(0)) {
      return false;
    } else {
      i++;
      j--;
    }
    //当i>j的时候也return
  }
  return true;
}
console.log(isPalindromic(str));

2022.2.10 补充

考虑:反转数字的一半,如果和前面的相等则相等
所有的负数全部返回false
也可以使用回文字符串的方法,但是需要创建新的字符串变量,内存消耗
相同的字符串也使用每次截取一半的方法,对后面的字符串进行反转之后和前面的进行对比,相同返回true,不相等返回false

function isPalindromic1(str) {
  //使用字符串截取方法
  let newStr = str.slice(Math.floor(str.length / 2));
  let str1 = str.slice(0, Math.ceil(str.length / 2));
  // console.log(len, newStr, str1, [...newStr].reverse().join(""));
  if ([...newStr].reverse().join("") !== str1) {
    return false;
  }
  return true;
}
console.log(isPalindromic1(str));

相关文章

网友评论

    本文标题:45.判断是否是回文字符串

    本文链接:https://www.haomeiwen.com/subject/pxnekrtx.html