核心思想:对称的话从左右一直比较到结束

密码截取

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

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String next = scanner.next();
        char[] charArray = next.toCharArray();
        int maxCount = 0;
        for (int i = 0; i < charArray.length; i++) {
            // 对称的密码串
            boolean dc = false;
            int count = 0;
            for (int j = charArray.length - 1; j >= 0; j--) {
                // 排除索引下标过界
                if (i >= j) {
                    break;
                }
                if (charArray[i] == charArray[j]) {
                    // 如果上一次已经是true,代表已经是最长的对称密码串
                    if (dc) {
                        break;
                    }

                    count = 2;
                    int n = i;
                    int m = j;
                    while (true) {
                        n++;
                        m--;
                        if (n >= m) {
                            if (n == m) {
                                // ABA形式,中间的B需计算一个长度
                                count++;
                            }

                            dc = true;
                            break;
                        }

                        if (charArray[n] == charArray[m]) {
                            count += 2;
                        } else {
                            break;
                        }
                    }
                }
            }
            // 每次将最大的对称字串长度更新
            if (dc) {
                maxCount = Math.max(maxCount, count);
            }
        }
        System.out.println(maxCount);
    }

}

全部评论

相关推荐

05-13 00:41
已编辑
北京邮电大学 Java
理性的杰克刷牛客:ai肯定要有的,最好学一下agent方向加一个智能客服什么的进去,并且多加点什么skill,mcp啥的,另外你现在的项目深度有些浅,这些功能都太简单了,而且也不是真正能扛高并发的实现,没有什么太大的亮点,可以去网上找点更有深度的项目。可以先投一些中小厂,有实习经历以后再去大厂,你现在这个大厂可能机会不大
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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