当前位置: 代码迷 >> 综合 >> JS - 回文字符串
  详细解决方案

JS - 回文字符串

热度:30   发布时间:2024-02-10 21:33:55.0

回文字符串

字符串正序读的结果与倒序读的结果一样,例如“上海自来水来自海上”

两种判定方法

  1. 数组指针
  2. 递归

数组指针:移动头指针与尾指针进行元素比较

var s = '上海自来水来自海上';
var len = s.length;
var mid = len % 2 ? len / 2 - 1 : len / 2; // 字符串长度为奇、偶数时的比较次数 
var flag = true;for (let i = 0; i < mid; i++) {let head = s[i];let tail = s[len - i - 1];if (head !== tail) {flag = false;break;}
}console.log(flag);

递归:每次比较头、尾对应的元素

var s = '上海自来水来自海上';function f(s, head, tail) {if (head + 1 > tail + 1) { // 递归结束条件:头指针下标 > 尾指针下标return s[head] === s[tail]; // 递归结束时,判断最后两个元素是否相等}if (s[head] === s[tail]) {return f(s, head + 1, tail - 1);}else {return false;}
}
var flag = f(s, 0, s.length - 1);
console.log(flag);

 

  相关解决方案