public static void main(String[] args) { System.out.println(getString("hiooih")); } private static String getString(String oldStr) { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < oldStr.length(); i++) { buffer.append(oldStr.charAt(i)); if (i!= oldStr.length()-1){ buffer.append("-"); } } //将传入进来的字符串转化为一定是 单数类型的 String str = buffer.toString(); //Maxstr用来存最长的数 String maxStr =""; //以每一个原素为中心点 找出最长的str for (int i = 1; i < str.length(); i++) { //最多影响的行数 int maxreflect =i; //若i(元素)的角标大于 字符串的一半,求出它将影响的 范围 if (i>(str.length()/2)){ maxreflect =str.length()-i-1; } int j=1; //以元素为中心 按范围循环,找出回文 最长的字符串 while (j<=maxreflect){ if (str.charAt(i-j) == str.charAt(i+j)){ if (maxStr.length()<=2*j+1 ) maxStr =str.substring(i-j,i+j+1); }else break; j++; } } //将我们加入的元素去掉 String[] split = maxStr.split("-"); System.out.println("split "+ Arrays.toString(split)); StringBuilder builder = new StringBuilder(); for (String s : split) { builder.append(s); } return builder.toString(); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)