[HDOJ 1020]Encoding 字符串编码
2015-04-17 10:18
375 查看
[HDOJ
1020]Encoding 字符串编码
Description
Given a string containing only 'A' - 'Z', we could encode it using the following method:
1. Each sub-string containing k same characters should be encoded to "kX" where "X" is the only character in this sub-string.
2. If the length of the sub-string is 1, '1' should be ignored.
Input
The first line contains an integer N (1 <= N <= 100) which indicates the number of test cases. The next N lines contain N strings. Each string consists of only 'A' - 'Z' and the length is less than 10000.
Output
For each test case, output the encoded string in a line.
Sample Input
2
ABC
ABBCCC
Sample Output
ABC
A2B3C
思路: 一开始以为是输出所有的相同的,所以WA了两次,原来是子串的相同,要临近的数才能组合一起。。。。。我的代码:
网上的代码:
1020]Encoding 字符串编码
Description
Given a string containing only 'A' - 'Z', we could encode it using the following method:
1. Each sub-string containing k same characters should be encoded to "kX" where "X" is the only character in this sub-string.
2. If the length of the sub-string is 1, '1' should be ignored.
Input
The first line contains an integer N (1 <= N <= 100) which indicates the number of test cases. The next N lines contain N strings. Each string consists of only 'A' - 'Z' and the length is less than 10000.
Output
For each test case, output the encoded string in a line.
Sample Input
2
ABC
ABBCCC
Sample Output
ABC
A2B3C
思路: 一开始以为是输出所有的相同的,所以WA了两次,原来是子串的相同,要临近的数才能组合一起。。。。。我的代码:
#include <iostream> #include <cstring> using namespace std; int main() { int i,k,n,count; char a[10010]; cin >> n; while (n--) { cin >> a; k=strlen(a); if (k==1) { cout << a << endl; continue; } for (i=0,count=1;i<k;++i) { if (a[i]!=a[i+1]) { if (count!=1) { cout << count ; count=1; } cout << a[i]; } else { count++; } } cout << endl; } return 0; }
网上的代码:
#include <stdio.h> #include <string.h> int main(){ int n,i,num; char str[10001];//题目要求是10000个字符,我们要开大一点 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; }
相关文章推荐
- [HDOJ 1020]Encoding 字符串编码
- ACM--字母序列--HDOJ 1020--Encoding--字符串
- HDU 1020 Encoding字符串编码
- 【字符串处理】HDOJ-1020-Encoding
- 【HDU】(字符串)1020_Encoding C++解法
- php自动获取字符串编码函数mb_detect_encoding
- HDOJ 1020 Encoding
- hdoj-1020-Encoding
- 杭电1020 Encoding (字符串处理)
- [热身题][hdoj_1020]Encoding
- HDOJ1020 Encoding
- encoding(hdoj1020)
- hdoj 1020 Encoding
- PHP mb_convert_encoding 获取字符串编码类型实现代码
- HDOJ1020连续字符串
- (HDOJ 1020)Encoding
- HDU-1020 Encoding (字符串)
- hdu 1020 Encoding【字符串处理】
- LoadRunner字符串编码转换的函数lr_convert_string_encoding
- 将字符串采用编码<b>_encoding</b>转化为字节数组