public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 读取字符串的长度 String s = sc.next(); // 读取字符串 s += s; // 将字符串自身拼接,模拟环形序列 int ans = 1; // 用于记录最长的连续不同字符子序列的长度 int cur = 1; // 当前连续不同字符子序列的长度 // 遍历拼接后的字符串,寻找最长的连续不同字符子序列 for (int i = 1; i < 2 * n; i++) { if (s.charAt(i) != s.charAt(i - 1)) { // 当前字符与前一个字符不同 cur++; ans = Math.max(ans, cur); // 更新最大长度 } else { cur = 1; // 如果字符相同,重新开始计数 } } // 最终结果应该是 ans 与 n 的最小值,避免环形序列的重复计数 System.out.println(Math.min(ans, n)); sc.close(); }