ZOJ 2478 Encoding
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 100.
Output
For each test case, output the encoded string in a line.
Sample Input
2
ABC
ABBCCC
Sample Output
ABC
A2B3C
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 int main(){ 5 int n; 6 string s; 7 cin >> n; 8 while(n--){ 9 cin >> s; 10 int len = s.length(); 11 int num = 1; 12 if(len == 1){ 13 cout << s << endl; 14 continue; 15 } 16 for(int i = 0; i < len - 1; i++){ 17 if(s[i] == s[i + 1]){ 18 num++; 19 } else { 20 if(num == 1) 21 cout << s[i]; 22 else 23 cout << num << s[i] ; 24 num = 1; 25 } 26 } 27 if(s[len - 1] == s[len - 2]) 28 cout << num << s[len - 1]; 29 else 30 cout << s[len - 1]; 31 cout << endl; 32 } 33 // system("pause"); 34 return 0; 35 }
越努力,越幸运