Problem Description
Given a string containing only ‘A’ - ‘Z’, we could encode it using the following method:
Each sub-string containing k same characters should be encoded to “kX” where “X” is the only character in this sub-string.
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
简单的字符串题目
需要注意的只有
如果输入:AABBBAAA
输出的是:2A3B3A
而不是:5A3B
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { int s,i,j,n,p,m; char a[100000],temp; scanf("%d",&s); while(s--) { scanf("%s",a); n=strlen(a); temp=a[0]; m=1; for(i=1;i<=n;i++) { p=1; if(a[i]==temp) { m++; } if(a[i]!=temp) { p=0; temp=a[i]; } if(p==0) { if(m==1) printf("%c",a[i-1]); else printf("%d%c",m,a[i-1]); m=1; } } printf("\n"); } return 0; }