算法:求一个字符串中存在的回文字符串的最大前缀

来源:互联网 发布:云服务百度 计算 编辑:程序博客网 时间:2024/05/29 02:01

源于网易2016秋招面试题,代码语言使用JAVA


package test;/** * 算法:求一字符串中存在的回文数的最大前缀 */public class Test{    public static void main(String[] args){        String title = "asfbjsgbhjfbgjhdooyoobghjdbgjjg"; //11个字符        String str="";        int k=0,q=0;        char[] chars = title.toCharArray();        for(int i=3;i<chars.length;i++){ //从三个字符开始测            int times=0;            for(int j=i;j<=chars.length;j++){ //测的次数                k=j-i;                while(q<i) {//                    System.out.print(chars[k+q]);                    str+=chars[k+q];                    q++;                }                System.out.print("str="+str+"-->"+str.length());                String turnStr = turnBackStr(str);                if(turnStr.equals(str)){                    System.out.println("   是回文数,前缀长度为"+k);                }else{                    System.out.println();                }            str="";            times++;            q=0;            }            System.out.println("执行了"+times+"次");        }    }    public static String turnBackStr(String str){        char[] strchar = str.toCharArray();        char temp; String newStr="";        int length=strchar.length-1;        for(int f=0;f<strchar.length/2;f++){            temp = strchar[f];            strchar[f] = strchar[length];            strchar[length--] = temp;        }        for(int i=0;i<strchar.length;i++)            newStr+=strchar[i];        System.out.print("---------------->"+ newStr);        return newStr;    }}

部分结果
这里写图片描述

0 0
原创粉丝点击