求字符串中最长回文

题目为求一个字符串最长的回文。
我采用了从一个字符为中心点,然后往左到右遍历的算法,算法复杂度应该为O(n²)
还有一种传说中的算法能把复杂度降为O(n),不过较为复杂就不研究了。

    public static String longestPalindrome(String s) {
        //增加#
        String st = null;
        StringBuilder sb = new StringBuilder("#");

        for (int i=0; i<s.length(); i++){
            sb.append(s.charAt(i));
            sb.append("#");
        }
        s = sb.toString();

        int max = 0;
        //记录中心点
        int pos = 0;
        //中间扩展的办法
        for (int i=0; i<s.length(); i++){
            int temp = 0;
            int j=i;
            //判断左右边边界
            int left = i - 1;
            int right = j + 1;
            while (left>=0 && right < s.length()){
                if (s.charAt(left) == s.charAt(right)){
                    temp++;
                }else{
                    break;
                }
                left--;
                right++;
            }
            //判断大小
            if (max<temp){
                pos = i;
                max = temp;
            }
        }
        //截取字符串
        s = s.substring(pos-max, pos+max);
        s = s.replaceAll("#", "");

        return s;
    }