首页 > 代码库 > 华为机考--字符串压缩

华为机考--字符串压缩

通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。 

压缩规则: 

1. 仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc". 

2. 压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxyyyyyyz"压缩后就成为"3x6yz" 

 1 #include <iostream> 2 using namespace std; 3 int main() 4 { 5     char s[50]; 6     int sCount; 7     int i; 8     while(cin>>s) 9     {10         sCount=1;11         for (i=0;s[i];i++)12         {13             if (s[i]==s[i+1])14             {15                 sCount++;16             } 17             else18             {19                 if (sCount==1)20                 {21                     cout<<s[i];22                 } 23                 else24                 {25                     cout<<sCount<<s[i];26                 }27                 sCount=1;28             }29         }30         cout<<endl;31     }32     return 0;33 }

运行结果:

华为机考--字符串压缩