项链问题
时间限制:1秒 内存限制:256M
【题目描述】
你有一条由 \(N\) 个红色的、白色的、或蓝色的珠子组成的项链,珠子是随意安排的。下面是 \(N=29\) 的两个项链:其中"r"代表 红色的珠子,"b"代表蓝色的珠子,"w"代表白色的珠子,项链中的第一和第二个珠子已经被作记号。比如图片 A 中的项链可以表示为:brbrrrbbbrrrrrbrrbbrbbbbrrrrb。
假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠子,在另一端做同样的事(颜色可能与在这之前收集的不同)。 确定应该在哪里打破项链来收集到最大数目的珠子。例如,在图片 A 中的项链中,在珠子 9 和珠子 10 或珠子 24 和珠子 25 之间打断项链可以收集到8个珠子。在一些项链中还包括白色的珠子(如图片B)所示。当收集珠子的时候,一个被遇到的白色珠子可以被当做红色也可以被当做蓝色。写一个程序来确定从一条被给出的项链可以收集到的珠子最大数目。
【输入格式】
第 1 行: 一个整数\(N\),表示珠子的数目
第 2 行: 一串长度为 \(N\) 的字符串, 每个字符是 r , b 或 w。
【输出格式】
单独的一行包含从被供应的项。
【输入输出样例1】
Input
29
wwwbbrwrbrbrrbrbrwrwwrbwrwrrb
Output
11
【数据限制】
对于 \(100\%\) 的数据,\(3≤N≤350\)。
【来源】
Mr.he