题目描述
有一种宝石串,由绿宝石和红宝石串成,仅当绿宝石和红宝石数目相同的时候,宝石串才最为稳定,不易断裂。安安想知道从给定的宝石串中,可以截取一段最长的稳定的宝石串,有多少颗宝石组成。请你帮助他。
绿宝石用‘G’表示,红宝石用‘R’表示。
输入输出格式
输入格式:
一行由G和R组成的字符串
输出格式:
最长的稳定的宝石串有多少颗宝石组成
输入输出样例
输入样例#1:
GRGGRG
输出样例#1:
4
说明
RGGR为答案。
宝石数<=1000000
这道题看数据范围不是O(n)就是O(nlogn),所以我们可以从数据范围入手,显然我们一般会从O(nlogn)这个复杂度分析;
O(nlogn)(WA):
显然我们可以从二分入手,这样子复杂度是O(nlogn)的,那我们会枚举答案长度,然后进行二分,然后就会处理细节,比如为了好处理,我们会让’G’记为1,’R’记为0,这样我们处理可以用^来快速处理颜色,但是打完会发现WA,那我们就要反思一下,为什么这个算法会WA;
因为这