美文网首页
最长回文子串

最长回文子串

作者: 守心向暖 | 来源:发表于2017-08-03 20:22 被阅读0次
    • 判断是否是回文字符串
    function isPalin(a) {
        if(a.length < 2) {
            return true;
        }
        var odd = a.length % 2 == 0;
        if(odd) {
            for(var i = 0; i < a.length / 2; i++) {
                if(a[i] != a[a.length - i - 1]) {
                    return false;
                }
            }
        }
        else {
            for(var i = 0; i < a.length / 2; i++) {
                if(a[i] != a[a.length - i - 1]) {
                    return false;
                }
            }
        }
    
        return true;
    }
    
    • 获取所有可能子串
    function getAllSubStr(a) {
      var result = [];
      var cnt = 1;
      while(cnt <= a.length) {
        for(var i = 0; i < a.length; i++) {
          if((i + cnt <= a.length) && result.indexOf(a.slice(i, i + cnt)) < 0) {
            result.push(a.slice(i, i + cnt));
          }
        }
        cnt++;
      }
      return result;
    }
    
    • 获取所有回文子串
    function getAllPalin(a) {
        var result = [];
        var tmp = getAllSubStr(a);
        for(var i = 0; i < tmp.length; i++) {
            if(isPalin(tmp[i])) {
                result.push(tmp[i]);
            }
        }
        return result;
    }
    
    • 进阶

    相关文章

      网友评论

          本文标题:最长回文子串

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