PTA7-67简码

分数 20
**作者 DS课程组单位 **
临沂大学
小明有一串很长的英文字母,可能包含大写和小写。在这串字母中,有很多连续的是重复的。小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母+出现次数的形式。例如,连续的5个a,即 aaaaa,简写成 a5。对于这个例子:aaaaaCCeeelHH,小明可以简写成 a5C2e3lH2。为了方便表达,小明不会将连续的超过9个相同的字符写成简写的形式。现在给出一串字符串,请帮助小明完成简写。
输入格式:输入一行为一个由大写字母和小写字符构成的字符串,长度不超过100000。
输出格式:输出为一行字符串,表示简写后的字符串。
输入样例:
aaaaaCCeeelHH
输出样例:
a5C2e3lH2
代码长度限制16 KB
时间限制2000 ms
内存限制64 MB

#include
#include
int main(){    
       char ch[100001];    
       gets(ch);    
       int a[128]={0};    
       for(int i=0;i<strlen(ch);i++){        
              a[ch[i]]++;        
              if(a[ch[i]]>9&&ch[i]!=ch[i+1]){            
                     for(int j=0;j<a[ch[i]];j++)            
                           printf("%c",ch[i]);            
                      a[ch[i]]=0;            
                      continue;       
                }        
              if(ch[i]!=ch[i+1]){            
                       if(a[ch[i]]==1){                
                                 printf("%c",ch[i]);                            
                       }else{                
                                 printf("%c%d",ch[i],a[ch[i]]);            
                                }            
                 a[ch[i]]=0;        
                }    
       }    
      return 0;
 }

你可能感兴趣的:(c语言)