站外题求助
  • 板块灌水区
  • 楼主yc123bc
  • 当前回复8
  • 已保存回复8
  • 发布时间2024/5/27 20:25
  • 上次更新2024/5/27 22:16:43
查看原帖
站外题求助
1082500
yc123bc楼主2024/5/27 20:25

输入字符串,输出压缩后的字符串。压缩的方法是把连续的相同字母压缩为"长度+字母"的形式,在本题中,单个的字母不需要压缩。

输入 一行,一个字符串,只包含小写英文字母,长度不超过 255 255 。

输出 输出压缩的结果。

样例 输入复制 aaabbbbbx 输出复制 3a5bx 来源 字符串

#include<algorithm>  //含sort函数等
#include<cmath>      //关于数学函数的头文件
#include<cstring>    //string字符串头文件
#include<cstdio>     //C语言的头文件
#include<iomanip>    //用于cout<<fixed<<setprecision()
#include<iostream>   //含cin,cout
#include<queue>      //普通队列(只能一边进一边出)(先进先出)
#include<deque>      //双向队列(两边都可以进出)(先进先出)
#include<stack>      //栈(先进后出,后进先出)
#include<list>       //列表
#include<vector>     //动态数组
#include<map>        //关联式容器
#include<set>        //集合
#include<climits>    //INT_MAX与INT_MIN
#include<utility>    //pair等
using namespace std;
map<char,int>mp;
string s;
int len;
int main()
{
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	cin>>s;
	len=s.size();
	for(int i=0;i<len;i++){
		mp[s[i]]++;
	}
	for(int i=0;i<len;i++){
		if(mp[s[i]]>=2){
			cout<<mp[s[i]]<<s[i];
		}else if(mp[s[i]]==1){
			cout<<s[i];
		}
		mp[s[i]]=0;
	}
	//fclose(stdin);
	//fclose(stdout);
	return 0;  //每日一个好习惯,老师远离我
}
2024/5/27 20:25
加载中...