时间限制 | 内存限制 |
---|---|
1000 ms |
65536 KB |
# 题目描述
小懒獭开始了一段努力学习的旅程。但由于她是小 “懒” 獭,她时常会在学习中偷懒。每当小懒獭学习时,她的智力都会得到提升,而偷懒将不会提升智力。
-
用
S
表示小懒獭学习了一次,智力提升了目前连续出现的S
的个数 -
用
L
表示小懒獭偷懒了一次,智力不会提升(但也不会下降),但会中断连续的S
如 SSLS
,第一个 S
智力提升一点,第二个 S
智力提升两点, L
智力不变化,第三个 S
智力提升一点。所以小懒獭最后智力将提升四点。
现在给定一个小懒獭的活动序列,请你计算她最后智力提升了多少点。
# 输入格式
一个字符串,表示小懒獭的活动序列,仅由 S
与 L
组成,保证长度在 到 之间。
# 输出格式
一个整数,表示小懒獭经过活动序列后智力提升了多少点。
# 输入样例
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; | |
} |