[Hdu1020] Encoding
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1020
题目大意:
输入A-Z,统计输出kx,x是输入的字符,k是输入连续相同的x的和,若k为1就不用输出k;
解题思路:
先把所有字符存到数组a里,i作为它的下标,用t从开始记录第一个字符的下标;然后判断a[t+1]是否等于a[i];
要等于就 t++,继续判断;不等于就输出t+1;然后进入下一个字符判断,重复前面的步骤、、、、、、
题目很简单只是阐述一种解题方法!!!!!!!
解题代码:
#include<stdio.h> #include<string.h> int main() { int i,t; char a[10005]; int T; scanf("%d",&T); while(T--) { scanf("%s",a); i=0; while(a[i]!='\0')//防止输入的是空格情况 { t=i; while(a[t+1]==a[i])//计算字符数有多少一样的个数减去1 { t++; } if(t>i) printf("%d",t-i+1); printf("%c",a[i]); i=t;//记录输出第一个字符的最后一个位置 i++; } printf("\n"); } return 0; }