给出一个由O和X组成的串,统计得分,每个O得分为目前连续出现的O的个数,X的得分为0。例如OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+3。新手入门算法竞赛,请各位多指教。得分计算其实就是一个累加的过程,我采用双数组,一数组来存放字符串,另一数组来存放对应分数,最后累加即可,已AC,代码如下:
#include<stdio.h>
#include<string.h>
int main(){
int T;
scanf("%d",&T);
while(T--){
char s[85];
scanf("%s",s);
int len=strlen(s);
int fen[len],k=0;
memset(fen,0,sizeof(fen));
for(int i=0;i<len;i++){
if(s[i]=='O') fen[i]=++k;
if(s[i]=='X') k=0;
}
int sum=0;
for(int i=0;i<len;i++){
sum+=fen[i];
}
printf("%d\n",sum);
}
}