连续合规子串
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在古典诗歌创作里,存在两种需规避的音韵瑕疵,分别是相邻字同韵(如 “悠 - 悠” 这般单调乏味的情况 )以及隔位字同韵(像 “悠 - 然 - 悠” 因首尾同韵而产生节奏循环的问题 )。作为诗院校验师,要从数字化诗稿(由小写字母序列构成,每个小写字母代表独立韵部 )中,找出最长的连续合规子串的长度。

形式化地,对于一个仅由小写字母构成的字符串 s,其长度为 n。请你找出 s 的所有满足合规条件的子串中,长度最大的那个子串的长度。合规条件指:
  • 相邻相异:子串中任意两个相邻的字符都不相同,即对于子串内任意索引 i \ge 1,有 s_i \neq s_{i-1}
  • 相隔一个相异:子串中任意两个相隔一个位置的字符也都不相同,即对于子串内任意索引 i \ge 2,有 s_i \neq s_{i-2}
【名词解释】
       子串:从原字符串中,连续的选择一段字符(可以全选)得到的新字符串。

输入描述:

第一行:一个整数 n\left(\begin{matrix}1 \leq n \leq 2 \times 10^{5}\end{matrix}\right),表示字符串 s 的长度。
第二行:一个长度为 n、仅由小写字母构成的字符串 s

输出描述:

一个整数,为满足合规条件的最长子串的长度。
示例1

输入

复制
4
abac

输出

复制
3

说明

最长合规子串是 “bac”,长度为 3
示例2

输入

复制
4
abab

输出

复制
2

说明

最长合规子串是 “ab” 和 “ba”,长度为 2
示例3

输入

复制
2
bb

输出

复制
1

说明

最长合规子串是 “b”,长度为1