题解 | #密码截取#

密码截取

https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1

import java.util.Scanner;
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String str = in.nextLine();
        System.out.println(get(str));
    }

    private static int get(String str) {
        List<String> intList = new ArrayList<>();
        // 从第二个开始往两边找,找到一样的就保存起来,找出所有ABA类型的
        for (int i = 1, len = str.length() - 1; i < len; i++) {
            for (int j = 0; j <= i && j <= len - i; j++) {
                if (str.charAt(i - j) == str.charAt(i + j)) {
                    intList.add(str.substring(i - j, i + j + 1));
                } else {
                    break;
                }
            }
        }
        // 从第一个开始往两边找,找ABBA类型的
        for (int i = 0, len = str.length() - 1; i < len; i++) {
            for (int j = 0; i - j >= 0 && i + j + 1 <=len; j++) {
                char left = str.charAt(i - j);
                char right = str.charAt(i + j + 1);
                if (left == right) {
                    String subStr = str.substring(i - j, i + j + 2);
                    intList.add(subStr);
                } else {
                    break;
                }
            }
        }

        return intList.stream().map(String::length).max(Integer::compareTo).get();
    }
    
}

全部评论

相关推荐

程序员小白条:这简历除了学历确实没啥亮点,先找个中小厂再说吧
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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