C3-UVa1585-Score

Posted on 2020-06-28 09:23  lemonforce  阅读(200)  评论(0编辑  收藏  举报

平台:

UVa Online Judge

題號:

1585 - Score

題目連結:

https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=448&page=show_problem&problem=4460

題目說明:

给出一个由O和X组成的串(长度为1~80),统计得分。每个O的得分为目前连续出现的O的个数,X的得分为0。例如,OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3。

範例輸入:

5
OOXXOXXOOO
OOXXOOXXOO
OXOXOXOXOXOXOX
OOOOOOOOOO
OOOOXOOOOXOOOOX

範例輸出:

10
9
7
55
30

解題方法:

2个参数,一个参数记录将要相加的得分,遇到O加1,遇到X置零。一个参数记录总的分数。

程式碼:

 1 #include <cstdio>
 2 #include <cstring>
 3 
 4 const int MAXN = 85;
 5 
 6 int main() {
 7     int T = 0;
 8     scanf("%d", &T);
 9     while (T--) {
10         char str[MAXN];
11         scanf("%s", str);
12         int score = 0, cnt = 0;
13         for (int i = 0; i < strlen(str); i++) {
14             if (str[i] == 'O') {
15                 cnt++;
16                 score += cnt;
17             }
18             else {
19                 cnt = 0;
20             }
21         }
22         printf("%d\n", score);
23     }
24     return 0;
25 }