HDU 1020 Encoding 典型的字符串的压缩
2012-08-10 20:55
483 查看
http://acm.hdu.edu.cn/showproblem.php?pid=1020
例如 AAAAEEEECCCCCAAA 则输出 4A4E5C3A的结果
//切记如果用字符数组统计个数 一位字符最多统计的个数为9个,超过9个就变成两个字符来统计的了。
post code:
正确代码
开始时自己写的错误程序:
自己一开始的这个程序错误之处:
#include<stdio.h>
#include<string.h>
char a[110000];
char b[110000];
int main()
{
int n,len,i,sum,j;
scanf("%d",&n);
while(n--)
{
scanf("%s",a);
len=strlen(a);
j=0;
for(i=0;i<len;i++)
{
sum=1;
while(a[i]==a[i+1])
{
sum++;
i++;
}
if(sum!=1){b[j]=sum+'0';j++;b[j]=a[i];j++;} //***这就是错误的位置 用字符数组统计个数
//最多只能是9个 超出九个 就变成两个字符了
else {b[j]=a[i];j++;}
}
b[j]='\0';
printf("%s\n",b);
}
}
例如 AAAAEEEECCCCCAAA 则输出 4A4E5C3A的结果
//切记如果用字符数组统计个数 一位字符最多统计的个数为9个,超过9个就变成两个字符来统计的了。
post code:
正确代码
#include<stdio.h> #include<string.h> char a[110000]; int main() { int n,len,i,sum; scanf("%d",&n); while(n--) { scanf("%s",a); len=strlen(a); for(i=0;i<len;i++) { sum=1; while(a[i]==a[i+1]) //判断重复的字符串个数 { sum++; i++; } if(sum!=1){printf("%d",sum);printf("%c",a[i]);} //输出重复的个数和重复的字母 else {printf("%c",a[i]);} } printf("\n"); } }
开始时自己写的错误程序:
自己一开始的这个程序错误之处:
#include<stdio.h>
#include<string.h>
char a[110000];
char b[110000];
int main()
{
int n,len,i,sum,j;
scanf("%d",&n);
while(n--)
{
scanf("%s",a);
len=strlen(a);
j=0;
for(i=0;i<len;i++)
{
sum=1;
while(a[i]==a[i+1])
{
sum++;
i++;
}
if(sum!=1){b[j]=sum+'0';j++;b[j]=a[i];j++;} //***这就是错误的位置 用字符数组统计个数
//最多只能是9个 超出九个 就变成两个字符了
else {b[j]=a[i];j++;}
}
b[j]='\0';
printf("%s\n",b);
}
}
相关文章推荐
- HDU 1020 Encoding 字符串
- HDU 1020 Encoding 字符串 水题
- HDU 1020 Encoding 字符串操作
- 【HDU】(字符串)1020_Encoding C++解法
- HDU 1020 Encoding (字符串处理)
- HDU 1020 Encoding字符串编码
- HDU--1020:Encoding (字符串)
- HDU 1020 Encoding 控制字符串的输出
- hdu 1020 Encoding【字符串处理】
- HDU-1020 Encoding (字符串)
- HDU 1020 Encoding(字符串合并)
- hdu 1020 Encoding(字符串处理)
- HDU 1020 Encoding 模拟
- [HDU 1020] Encoding
- HDU-1020-Encoding(水题,但题目意思容易搞错,英语的问题)
- HDU 1020 Encoding
- hdu 1020 Encoding
- HDU-1020-Encoding(Java && 弱水三千)
- hdu-1020-Encoding
- HDU 1020 - Encoding