题目
这个题有一个挺坑的误区,不是统计字符串中出现的所有字符的个数,而是统计相邻的个数
刚开始就写错了
正解:
#include <stdio.h>
#include <string.h>
int main(){int n,i,num;char str[10001];scanf("%d",&n);while(n--){num=1;scanf("%s",str);for(i=0;i<strlen(str);i++){if(str[i]==str[i+1]){ //如果一个字符跟它后面的字符相同则num++;num++;}else{if(num<=1) {printf("%c",str[i]);num=1;}//记住num要重置为1。else{printf("%d%c",num,str[i]);num=1; }}}printf("\n");}return 0;
}
错解: #include<stdio.h>
int main()
{int str[10000+5];int t;scanf("%d",&t);while(t--){scanf("%s",str);solve();}void solve(char str[]){int num = 1;int len = strlen(str);for(int i=0; i<len; i++){if(str[i] == str[i+1] ) num++;else{if( num==1) printf("%c",str[i]);else printf("%d%c",num,str[i]);num==1;}} printf("\n");}return 0;
}