Encoding
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 33473 Accepted Submission(s):
14895
Problem 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.
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
Author
ZHANG Zheng
Recommend
很水的题,题意看输入输出就应该能懂。
题意:统计一个连续出现的字符个数。
附上代码:
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 using namespace std; 5 int main() 6 { 7 int n,i,t,s; 8 char a[10010]; 9 scanf("%d",&n); 10 while(n--) 11 { 12 scanf("%s",a); 13 s=strlen(a); 14 t=1; 15 for(i=1; i<=s; i++) 16 { 17 if(a[i-1]==a[i]) 18 t++; 19 else 20 { 21 if(t>1) 22 printf("%d%c",t,a[i-1]); 23 else 24 printf("%c",a[i-1]); 25 t=1; 26 } 27 } 28 printf(" "); 29 } 30 return 0; 31 }