HDU1020(水题)
2017-08-09 17:47
211 查看
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.
[align=left]Input[/align]
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.
[align=left]Output[/align]
For each test case, output the encoded string in a line.
[align=left]Sample Input[/align]
2
ABC
ABBCCC
[align=left]Sample Output[/align]
ABC
A2B3C
//看错题目,WA了几次,ORZ
[cpp]
view plain
copy
print?
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
int n,i,cnt;
char str[10005];
cin >> n;
while(n--)
{
cin >> str;
for(i = 0; str[i]!='\0';)
{
cnt = 1;
while(str[i] == str[i+1])
{
cnt++;
i++;
}
if(cnt == 1)
cout << str[i];
else
cout << cnt << str[i];
i++;
}
cout << endl;
}
return 0;
}
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.
[align=left]Input[/align]
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.
[align=left]Output[/align]
For each test case, output the encoded string in a line.
[align=left]Sample Input[/align]
2
ABC
ABBCCC
[align=left]Sample Output[/align]
ABC
A2B3C
//看错题目,WA了几次,ORZ
[cpp]
view plain
copy
print?
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
int n,i,cnt;
char str[10005];
cin >> n;
while(n--)
{
cin >> str;
for(i = 0; str[i]!='\0';)
{
cnt = 1;
while(str[i] == str[i+1])
{
cnt++;
i++;
}
if(cnt == 1)
cout << str[i];
else
cout << cnt << str[i];
i++;
}
cout << endl;
}
return 0;
}
#include <iostream> #include <cstdio> #include <cstring> using namespace std; int main() { int n,i,cnt; char str[10005]; cin >> n; while(n--) { cin >> str; for(i = 0; str[i]!='\0';) { cnt = 1; while(str[i] == str[i+1]) { cnt++; i++; } if(cnt == 1) cout << str[i]; else cout << cnt << str[i]; i++; } cout << endl; } return 0; }
相关文章推荐
- HDU 1020(水题)
- HDU 1020 Encoding 字符串 水题
- hdu 1020_Encoding(水题)
- hdu 1020 Encoding(水题)
- HDU1020 ZOJ2478 Encoding【水题】
- HDU 5349 MZL's simple problem(水题)
- Throw nails hdu多校联赛10 1004 水题
- HDU 4788 Hard Disk Drive (2013成都H,水题)
- hdu 1551 二分水题
- hdu 3357 水题
- HDU 2090 算菜价 --- 水题
- HDU——1020 Encoding
- HDU 1032 The 3n + 1 problem (水题)
- hdu 5328 Problem Killer(水题)
- HDU-4554 叛逆的小明 水题
- HDU--1003Max Sum【水题】
- HDU 4442 Physical Examination【水题】【思维题】
- hdu 2212 打表水题
- hdu 5268 ZYB loves Score 水题
- hdu_1020:Encoding