获取最长回文串长度

47 阅读1分钟

获取最长回文串长度

public static int countHuiWenLength(String s){
    int n = s.length();
    int m = 0;
    for (int i = 0; i < n; ++i) { // 对称中心(偶数长度的为中间左边界)
        for (int j = 1; i - j + 1 >= 0 && i + j < n; ++j) {//偶
            if (s.charAt(i - j + 1) != s.charAt(i + j)) {
                break;
            } else if (2 * j > m){
                m = 2*j;
            }
        }
        for (int j = 0; i - j >= 0 && i + j < n; ++j) {//奇
            if (s.charAt(i - j) != s.charAt(i + j)) {
                break;
            } else if (2 * j+1 > m){
                m = 2*j+1;
            }
        }
    }
    return m;
}