5. 最长回文子串——基于扩展中心法的优化
生活随笔
收集整理的這篇文章主要介紹了
5. 最长回文子串——基于扩展中心法的优化
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
class Solution {public String longestPalindrome(String s) {if (s == null) return null;char[] cs = s.toCharArray();if (cs.length <= 1) return s;// 最長回文子串的長度(至少是1)int maxLen = 1;// 最長回文子串的開始索引int begin = 0;int i = 0;while (i < cs.length) {int l = i - 1;// 找到右邊第一個不等于cs[i]的位置int r = i;while (++r < cs.length && cs[r] == cs[i]);// r會成為新的ii = r;// 從l向左,從r向右擴(kuò)展while (l >= 0 && r < cs.length && cs[l] == cs[r]) {l--;r++;}// 擴(kuò)展結(jié)束后,cs[l + 1, r) cs(l, r)就是剛才找到的最大回文子串// ++l后,l就是剛才找到的最大回文子串的開始索引int len = r - ++l;if (len > maxLen) {maxLen = len;begin = l;}}return new String(cs, begin, maxLen);}
}
總結(jié)
以上是生活随笔為你收集整理的5. 最长回文子串——基于扩展中心法的优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5. 最长回文子串——暴力法---动态规
- 下一篇: 16.16. 部分排序