Encoding
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5837 Accepted Submission(s): 2417
Problem DescriptionGiven 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.
InputThe
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.
OutputFor each test case, output the encoded string in a line.
Sample Input
2
ABC
ABBCCC
Sample Output
ABC
A2B3C
解題:
一道很無語的題目,對於字母的輸出不用排序輸出,而且計算相同的字元只需要計算相鄰的就可以。
輸入:ABBCCCA
輸出:A2B3CA
輸入:AACCBB
輸出:2A2C2B
#include <iostream><br />using namespace std ;<br />int main()<br />{<br /> int t,i,num ;<br /> char a[10002];</p><p> scanf("%d%*c",&t);<br /> while(t--)<br /> {<br /> gets(a);</p><p> num=1 ;<br /> for(i=0;a[i]!='/0';i++)<br /> {<br /> if(a[i]==a[i+1])<br /> num++;<br /> if(a[i]!=a[i+1]||a[i+1]=='/0')<br /> {<br /> if(num==1)<br /> printf("%c",a[i]);<br /> else<br /> printf("%d%c",num,a[i]);<br /> num=1 ;<br /> }<br /> }<br /> printf("/n");<br /> }<br /> return 0 ;<br />}