java计算最大回文字串

public static void main(String[] args) {
        System.out.println(Text.traverse("fdsfdierownrjbnmbjkkkkjcxz;ihuiohurewl"));
    }
    public static int traverse(String string){
        int res=1;
        int len=string.toCharArray().length;
        //比如len=5 第一次回文长度i=5,j=1
        for(int i=len;i>1;i--){//遍历长度
            //从string中取出长度为i的每个string
            for(int j=0;j<len-i+1;j++){//len-i+1代表某长度字符串的个数
                String tempStr=text.getStr(j,i, string);
                if(text.isEhco(tempStr)){
                    return i;
                }
            }
        }
        return res;
    }
    public static String getStr(int k,int len,String string){//
        return string.substring(k, k+len);
    }
    public static boolean isEhco(String string){
        String string2="#";
        char chars[]=string.toCharArray();
        for(int i=0;i<chars.length;i++){
            string2+=chars[i]+"#";
        }
        char chars2[]=string2.toCharArray();
        for(int i=0;i<chars2.length;i++){
            if(chars2[i]!=chars2[chars2.length-i-1]){
                return false;
            }
        }
        return true;
        
    }

这里最重要的思想是在字串中以及字串两端加一个*号,这样的话奇数长度还是奇数长度,偶数长度会变成奇数长度。其判断条件就一样了

你可能感兴趣的:(最大回文字串)