hdu1020 - Encoding
2016-12-25 20:28
519 查看
地址
http://acm.hdu.edu.cn/showproblem.php?pid=1020定位
水题字符串处理
分析
将重复字符编码成nX的形式,一遍循环即可。
代码
#include <stdio.h> #include <stdlib.h> int main() { int T; int n,i; char str[10000]; scanf("%d",&T); getchar(); while(T--) { memset(str,0,sizeof(str)); gets(str); n = 1; i = 1; while(str[i] != '\0') { if(str[i] == str[i-1]) { n++; } else { if(n != 1) { printf("%d",n); } printf("%c",str[i-1]); n = 1; } i++; } if(n != 1) { printf("%d",n); } printf("%c",str[i-1]); n = 1; printf("\n"); } }
性能
Exe.Time | Exe.Memory | Code Length | Language |
---|---|---|---|
0MS | 1420K | 782B | c |
总结
判断字符串结尾
c语言中,不论是用scanf("%s",&str)读取一个字符串还是用
gets(str)读取一行,都不能直接获知字符串的规模。因存在越界访问的风险,c11标准中弃用或标记过时了部分库函数。
目前OJ多采用c99标准,允许使用这些函数。
然而,这些函数处理效率很高,小心使用就可以规避风险。c语言会在字符串的结尾自动添加
\0,以标记结束。在处理字符串时,可以通过比较
\0判断字符串结尾。
应保证字符串变量(字符数组/字符指针)的存储空间足够,否则不会自动添加
\0。
Thanks everyone
相关文章推荐
- HDU 1020:Encoding
- HDU 1020 Encoding (String)
- 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_1020Encoding
- hdu_1020:Encoding
- HDU1020 ZOJ2478 Encoding【水题】
- hdu-1020-Encoding
- HDU-1020-Encoding,题意不清,其实很水~~
- HDU 1020-Encoding
- hdu1020--Encoding