[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;
}

 

posted on 2014-04-07 20:51  与我同在  阅读(258)  评论(2编辑  收藏  举报

导航