UVa 1585 Score --- 水题

时间:2023-12-30 15:13:38

  题目大意:给出一个由O和X组成的串(长度为1-80),统计得分。

       每个O的分数为目前连续出现的O的个数,例如,OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3

  解题思路:用一个变量term记录当前O的分数,若出现O,则term+1,若出现X,则term=0;

       再用一个sum记录总和,没次加上term即可

/* UVa 1585 Score --- 水题 */
#include <cstdio>
#include <cstring> const int maxn = ; int main()
{
int t;
char s[maxn]; scanf("%d", &t);
while (t--){
scanf("%s", s);
int n = strlen(s);
int flag = , sum = ;
for (int i = ; i < n; ++i){
//落连续出现,次O分数+1
if (s[i] == 'O'){
++flag;
}
else{
flag = ;
}
sum += flag; //更新总和
}
printf("%d\n", sum);
} return ;
}