题解 | #最长回文子串#

最长回文子串

https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507

我这个方法的好处是,从大到小来找,找到了就可以直接退出循环,不需要遍历完所有的情况。

import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNext()) {
            String line = in.nextLine();
            int length = line.length();
            String result = "";
            //第一次循环,控制每次递减的字符串长度
            for (int i = 0; i < length; i++) {
                int subLength = length - i;
                //第二次循环,控制每次截取的开始下标,下标小于等于扣减的字符串数量
                for (int j = 0; j <= i; j++) {
                    String substring = line.substring(j, j + subLength);
                    if (isHuiWen(substring)) {
                        result = substring;
                        break;
                    }
                }
                if (!result.equals("")) {
                    break;
                }
            }
            System.out.println(result.length());
        }
    }

    public static boolean isHuiWen(String subLine) {
        StringBuilder stringBuilder = new StringBuilder(subLine);
        stringBuilder.reverse();
        return stringBuilder.toString().equals(subLine);
    }
}

全部评论

相关推荐

钱嘛数字而已:拖拉机被发明出来之后,就不需要农民了吗?农民还是需要的,但不需要这么多了,另外对农民的要求也变高了,需要会开拖拉机。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务