得分(Score, ACM/ICPC Seoul 2005, UVa1585)

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

思路:直接从首至尾遍历串,设置一个变量t标记O的个数,如遇到X直接清零。

#include
#include
#include

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;
} 

你可能感兴趣的:(每天一道算法题,c++,算法,开发语言)