最长回文子串

  • 判断是否是回文字符串
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;
}
  • 进阶
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 最长回文子串——Manacher 算法 1. 问题定义 最长回文字符串问题:给定一个字符串,求它的最长回文子串长度...
    林大鹏阅读 7,717评论 0 6
  • 问题定义 最长回文子串问题:给定一个字符串,求它的最长回文子串长度。 解法1:暴力解法 找到字符串的所有子串,判断...
    HITMiner阅读 3,975评论 0 2
  • 上一篇KMP算法之后好几天都没有更新,今天介绍最长回文子串。 首先介绍一下什么叫回文串,就是正着读和倒着读的字符顺...
    zero_sr阅读 7,087评论 2 8
  • 字符串最长回文子串 题目描述: 给定一个字符串,求它的最长回文子串的长度。 分析和解法: 最容易想到的办法是枚举所...
    MinoyJet阅读 3,919评论 0 2
  • 最长回文串问题是一个经典的算法题。 0. 问题定义 最长回文子串问题:给定一个字符串,求它的最长回文子串长度。如果...
    曾会玩阅读 9,495评论 2 25