题目,给出一个由O和X组成的串(长度为1-80),统计得分,每个O的得分为目前连续出现的O的个数,X的得分为0.
例如,OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3
代码:
#include <cstdio>
#include <cstring>
using namespace std;
const int LEN=80;
int main()
{
char s[LEN];
int n[LEN];
memset(s,'A',sizeof(char)*LEN);
scanf("%s",s);
int step=1;
bool ison=false;
memset(n,0,sizeof(int)*LEN);
for(int i=0;i<LEN;i++){
switch(s[i]){
case 'O':
n[i]=step;
step++;
break;
case 'X':
n[i]=0;
step=1;
break;
default:break;
}
}
printf("\n");
int result=0;
for(int i=0;i<LEN;i++){
result+=n[i];
}
printf("%d",result);
return 0;
}
输入输出:
OOXXOXXOOO
10
还有在这里Mark一下,希望自己可以坚持学算法。以后坚持更新博客。