题解 | 穷哈哈~-Java

穷哈哈~

https://www.nowcoder.com/practice/5b3184b233f34fb39a7f259ae82eb42c

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        String s = in.next();
        in.close();

        int maxLen = 0;
        int currLen = 0;
        char last = 0; // ASCII中0不是任何可见字符,相当于null

        for (int i = 0; i < n; i++) { 
            char c = s.charAt(i);

            // 只处理a和h,其他字符直接重置
            if (c != 'a' && c != 'h') {
                currLen = 0;
                last = 0;
                continue;
            }

            // 当前是合法字符时的处理
            if (last == 0) {
                // 首次遇到合法字符,初始化序列
                currLen = 1;
            } else if (c != last) {
                // 与上一个字符不同,延长序列
                currLen++;
            } else {
                // 与上一个字符相同,重置为当前字符的新序列
                currLen = 1;
            }

            // 更新上一个字符和最大长度
            last = c;
            if (currLen > maxLen) {
                maxLen = currLen;
            }
        }

        System.out.println(maxLen);
    }
}

全部评论

相关推荐

评论
2
收藏
分享

创作者周榜

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