本文主要是介绍Encode String湘潭大学月赛,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目描述字符串压缩有一种简单的方法,就是直接统计连续出现的字符的个数,然后用一个数字+一个字符代替,比如aaa会被代替为3a,bbbb会被代替为4b。
现在我给你一个串,求它用这个方法压缩过后的串。
输入
包含多组数据。第一行是一个整数N,表示样例的个数。以后每行为一个样例,为一个仅仅包含小写字母的字符串,长度不超过1000;
输出
每组数据输出一行,为压缩过后的串。
样例输入
2
aaabbbb
ddreeeeeeeeee
样例输出
3a4b
2d1r10e
AC代码:
#include<string.h>
#include<iostream>
using namespace std;
int main()
{ int T;cin>>T;while(T--){ string s,s1;cin>>s;int n=s.size();int i=0,j=1;while(j<=n){ if(s[i]==s[j]) j++;else if(s[i]!=s[j]||j==n){ int k=j-i;if(k>99&&k<1000) { int a=k/100;s1+=a+'0';a=(k/10)%10;s1+=a+'0';a=k%10;s1+=a+'0';}else if(k>9&&k<=99){ int a=k/10;s1+=a+'0';a=k%10;s1+=a+'0';}else s1+=k+'0';s1+=s[i];i=j;j++;}}cout<<s1<<endl;}return 0;}
这篇关于Encode String湘潭大学月赛的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!