(1)暴力解法
遍历字符串中所有的子串,然后对每个子串进行回文检测。时间复杂度O(n的三次方)
(2)对称性质改进
遍历所有子串改为遍历所有子串的中心点,向外扩散,从左自右,受到边界和对称性的影响,当长度达到一定时,达到边界,可不用再继续往外扩散探索。而整个字符串的字符以及字符间的空隙都有可能是这个中心点。只要遍历所有这些中心点,在向外扩散的同时,一边注意左右字符是否对称,一边注意是否达到最大边界即可。长度为n的字符串的中心点有2n-1个。每个中心点的平均比较次数为n/4(最长比较长度为n/2)。总得算法时间复杂度为O(n的平方)。
(3)马拉车算法
网友评论