JAVA编程输出最长回文子串
1个回答
2013-10-28
展开全部
public static void lps(String str) {
char[] cs = str.toCharArray();
StringBuilder sb = new StringBuilder(String.valueOf(cs[0]));
for (int i = 1; i < cs.length; i++) {
sb.append("*").append(cs[i]);
}
cs = sb.toString().toCharArray();
int middleIndex = 0; int stringRadix = 0;
for(int i = 1; i < cs.length - 1; i++) {
for(int j = 1; j < cs.length / 2 - 1; j++) {
if(i > j-1 && i < cs.length-j+1 && cs[i-j] == cs[i+j]) {
if(j > stringRadix) {
middleIndex = i;
stringRadix = j;
}
} else {
break;
}
}
}
System.out.println(String.valueOf(cs).substring(middleIndex - stringRadix, middleIndex + stringRadix + 1).replace("*", ""));
}
写的有点仓促,应该是可以的...
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询