字符串擦除字符并压缩

题目描述 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 }

 

转载于:https://www.cnblogs.com/zhangjs73/p/10309512.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值