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;
        
    }

這裏最重要的思想是在字串中以及字串兩端加一個*號,這樣的話奇數長度仍是奇數長度,偶數長度會變成奇數長度。其判斷條件就同樣了
java

相關文章
相關標籤/搜索