小明有根绳子,上面有很多玻璃球,玻璃球由红绿蓝三种颜色组成,其中红色球1分,绿色求2分,蓝色球三分。
现在有一个积分规则,当一个球与前面1个球颜色相同会奖励一分,和前面2个球都相同会奖励2分,以此类推。
小明有根绳子,上面挂满了玻璃球,玻璃球的颜色有红、绿、蓝三种,分别用字符r
、g
、b
表示,红色球的得分为1分,绿色球为2分,蓝色球为3分。此外,若某个球的颜色与前面的球相同,则会额外获得奖励分,具体来说,与前面1个球相同奖励1分,与前面2个球都相同奖励2分,以此类推。给定一串由这些字符组成的字符串,任务是计算这串玻璃球的总得分。
由于string的长度只有1e4,可以直接暴力做,n^2也只有1e8,小常数1s内可以跑完。直接往前遍历有几个字符和它相同即可。
或者基于简单dp的方式,每个位置保存它前面与它相等且串联的字符数量,每个字符只需要看其是否与上一个字符相等即可,相等则加1,否则置为0。