数据解构和算法收藏

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

2022-02-05  本文已影响0人  wo不是黄蓉

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

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

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));
上一篇 下一篇

猜你喜欢

热点阅读