字符串的最大回文字符串

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。

var longestPalindrome = function (s) {
      var i = 0;
      var _obj = {};
      var l = s.length;
      var max = 0;
      var firstIndex = 0;
      var lastIndex = 0;
      // 处理边界
      if (!s) return 0
      if (l === 1 || (l === 2 && s[0] === s[1])) return s;
      if (l === 2 && s[0] !== s[1]) return s[0]
      // 获取回文
      for (i = 0; i < l; i++) {
        var j = i;
        while (j >= 0) {
          if (s[j] === s[i] && (i - j < 2 || _obj[(j + 1) + ',' + (i - 1)])) {
            _obj[j + "," + i] = true;
            if (i - j + 1 > max) {
              max = i - j + 1;
              firstIndex = j;
              lastIndex = i + 1;
            }
          }
          j--
        }
      }
      return s.substring(firstIndex, lastIndex);
    };

你可能感兴趣的:(字符串的最大回文字符串)