JAVA编程输出最长回文子串

 我来答
匿名用户
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("*", ""));
}

写的有点仓促,应该是可以的...

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式