java回文数组_java 找出数组中的最大回文字符串

这是一个关于字符串处理的算法实现,通过遍历输入字符串,寻找其中的最大回文子串。算法首先以每个字符为中心,分别判断奇数长度和偶数长度的回文子串,然后更新最大回文子串的长度和内容。最后返回最大回文子串及其长度。

/**

* 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"));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值