给出一个由O和X组成的串(长度为1~80),统计得分。每个O的得分为目前连续出现的O的个数,X的得分为0。例如,OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3。
思路:直接从首至尾遍历串,设置一个变量t标记O的个数,如遇到X直接清零。
#include<stdio.h>
#include<iostream>
#include<String.h>
using namespace std;
#define MAXN 81
int main()
{
int t = 0, sum = 0;
char s[MAXN];
scanf("%s", s);
for(int i=0; i<strlen(s); i++)
{
if(s[i]=='O')
{
t++;
sum += t;
cout << t;
if(i != strlen(s)-1) cout << "+";
}
else
{
t = 0;
cout << t;
if(i != strlen(s)-1) cout << "+";
}
}
cout << "=" << sum << endl;
}