时间限制 内存限制
1000 ms 65536 KB

# 题目描述

小懒獭开始了一段努力学习的旅程。但由于她是小 “懒” 獭,她时常会在学习中偷懒。每当小懒獭学习时,她的智力都会得到提升,而偷懒将不会提升智力。

  • S 表示小懒獭学习了一次,智力提升了目前连续出现的 S 的个数

  • L 表示小懒獭偷懒了一次,智力不会提升(但也不会下降),但会中断连续的 S

SSLS ,第一个 S 智力提升一点,第二个 S 智力提升两点, L 智力不变化,第三个 S 智力提升一点。所以小懒獭最后智力将提升四点。

现在给定一个小懒獭的活动序列,请你计算她最后智力提升了多少点。

# 输入格式

一个字符串,表示小懒獭的活动序列,仅由 SL 组成,保证长度在 1110001000 之间。

# 输出格式

一个整数,表示小懒獭经过活动序列后智力提升了多少点。

# 输入样例

SSLS

# 输出样例

4

# 题解:模拟

用两个变量存下当前智力和当前连击数,依题意模拟即可。

连击分去死啊(你们音游比真的是

参考代码:

#include <stdio.h>
#include <string.h>
int ans, combo;
char str[1010];
int main()
{
    // freopen("B.in", "r", stdin);
    // freopen("B.out", "w", stdout);
    scanf("%s", str);
    int len = strlen(str);
    for (int i = 0; i < len; ++ i)
    {
        if (str[i] == 'S')
        {
            ++ combo;
            ans += combo;
        }
        else
            combo = 0;
    }
    printf("%d\n", ans);
    return 0;
}