字符串擦除字符并压缩

题目描述 Description

给出一个全部由小写字母和数字组成的字符串。请先将这个字符串中的数字全部擦除。然后为了将这个字符串存储起来,并且尽可能地节省空间,现在将多个连续出现的相同字母,改写成这个字母本身后面跟上最长的连续的个数的形式。比如"...baaaaac..."这个部分可以改写成"...ba5c..."(连续出现的个数可能会超过10个)。如果字符一个个单独出现,则不需要压缩。给出一个 字符串,试着输出经处理的结果。

输入描述 Input Description

一行,一个字符串,含有小写字母和数字

输出描述 Output Description

处理之后的字符串的结果

样例输入 Sample Input

aaaaaa5bbbb323b2g

样例输出 Sample Output

a6b5g

 

 1 #include <iostream>
 2 #include <string.h>
 3 #include <cstdio>
 4 
 5 using namespace std;
 6 
 7 char s[1000],t[1000];
 8 int main()
 9 {
10     gets(t);
11     int j=0,k=0,cnt;
12     for(int i=0;i<strlen(t);i++)
13     {
14         if(t[i]>='a'&&t[i]<='z')
15         {
16             s[j]=t[i];
17             j++;
18         }
19     }
20     while(s[k]!='\0')
21     {
22         cnt = 1;
23         cout<<(s[k]);
24         k++;
25         while(s[k]==s[k-1])
26         {
27             cnt++;
28             k++;
29         }
30         if(cnt>1)
31             cout<<(cnt);
32     }
33 
34     return 0;
35 }

 

posted @ 2019-01-23 15:59  zhangjs73  阅读(391)  评论(0编辑  收藏  举报