/**
* Created by Administrator on 2017/4/23.
* 找出一个数组中的最大回文字符串
* 思路:1,遍历每个字符,从第一个到最后一个。for()
* 2.以当前字符为基准点,向左向右延伸,看左右是否相等[注意基数回文与偶数回文判断方法不一样]。for(j)
* 3.遇到不相等的时候,把回文长度赋值给current,比较current与max,用break跳出循环
* 4.返回值
*/
public class Synonym {
public String circuit(String str){
int current=0;
int max=0;
String biggest=" ";
for(int i=0;i
for(int j=0;j+i=0;j++)
{if(str.charAt(i-j)!=str.charAt(i+j)) {
current=2*j-1;
if(current>max){
max=current;
biggest=str.substring(i+1-j,i+j);
}
break;
}
}
for(int j=0;j+i+1=0;j++){
if(str.charAt(i-j)!=str.charAt(i+1+j)){
current=2*j;
if(current>max){
max=current;
biggest=str.substring(i+1-j,i+1+j);
}
break;
}
}
}
return max+" "+biggest;
}
public static void main(String[] args) {
Synonym sy=new Synonym();
System.out.println( sy.circuit("aabbbcccdddccbb"));
}
}
这是一个关于字符串处理的算法实现,通过遍历输入字符串,寻找其中的最大回文子串。算法首先以每个字符为中心,分别判断奇数长度和偶数长度的回文子串,然后更新最大回文子串的长度和内容。最后返回最大回文子串及其长度。
5953

被折叠的 条评论
为什么被折叠?



