UVA-1585 Score
题目大意:”O” 表示正确,得一分,连续的“O”分数累加如”OOO”,即为”1+2+3”。”X”表示错误且之后的”O”清零,从 1 开始累加,如 “OXOOX” 的得分为 “1+0+1+2+0=4”。
解题思路:判断字符,如果是“X”,则继续累加;否则清零。
Sample Input
5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX
Sample Output
10
9
7
55
30
#include <iostream>
#include <string.h>
using namespace std;
int main() {
int m;
cin >> m;
while (m--) {
char s[100]; int i, t; int sum = 0;
cin >> s;
int len = strlen(s);
for (i = t = 0; i < len; i++)
if (s[i] == 'X') {
t = 0;
continue;
}
else {
t++;
sum += t;
}
cout << sum << endl;
}
}