题目链接:
http://mozhu.today/#/problem/show/511
题解:
本题题意略有问题,考虑到了’_’、’*’、’+’、’#’符号。且开数组时不能刚好开50,猜测系统把\n也看做了字符。
代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
//CDOJ511
int main()
{
int t;
int i,j;
int len;
int sum[51]= {0};
int index[51];
char str[51];
scanf("%d",&t);
for(i=0; i<t; i++)
{
scanf("%s",str);
len=strlen(str);
for(j=0; j<len; j++)
{
if(str[i]=='#')
index[i]=12;
else if(str[i]=='_')
index[i]=1;
else if(str[i]=='+')
index[i]=11;
else if(str[i]=='*')
index[i]=10;
else
{
if(str[j]<'P')
index[j]=2+(str[j]-'A')/3;
else if(str[j]<'T')
index[j]=7;
else if(str[j]<'W')
index[j]=8;
else
index[j]=9;
}
}
for(j=0; j<len-1; j++)
{
if(index[j]!=index[j+1])
sum[i]++;
}
}
for(i=0; i<t; i++)
printf("Case #%d: %d\n",i+1,sum[i]);
return 0;
}