UVA 1585

在这里插入图片描述

题目大意:

给出一串由OX组成的序列,求总得分,对于连续的O,每一个都多加一分,如果遇到X,则每个O的分值从1算起,输出总分。

解题思路:

定义一个num,只要没遇到X,num++,ans+=num, 如果遇到X,num的值归零即可。AC代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int _max = 1e3;
int main()
{
	int n;
	cin>>n;
	while(n--)
	{
		string s;
		cin>>s;
		int ans=0,t=0;
		for(int i=0;i<s.length();i++)
		{
			if(s[i]=='O')
			{
				t++;
				ans+=t;
			}
			else
			  t=0;
		}
		cout<<ans<<endl;
	}
	return 0;
}
原文地址:https://www.cnblogs.com/Hayasaka/p/14294237.html