难度简单8收藏分享切换为英文关注反馈
字符串压缩。利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能。比如,字符串aabcccccaaa
会变为a2b1c5a3
。若“压缩”后的字符串没有变短,则返回原先的字符串。你可以假设字符串中只包含大小写英文字母(a至z)。
示例1:
输入:"aabcccccaaa"
输出:"a2b1c5a3"
示例2:
输入:"abbccd"
输出:"abbccd"
解释:"abbccd"压缩后为"a1b2c2d1",比原字符串长度更长。
提示:
字符串长度在[0, 50000]范围内。
这道题是模拟,要注意的是接在字符后面的数可能不止一位,要把它转成字符串
class Solution {
#define ll long long
#define rg register ll
public:
string compressString(string S) {
string tepp;
for(rg i=0;S[i];i++)
{
ll tep=i,sum=0;
string shu;
tepp+=S[i];
while(S[tep]==S[i])tep++,sum++;
while(sum)
{
shu+=sum%10+48;
sum/=10;
}
reverse(shu.begin(),shu.end());
tepp+=shu;
i=tep-1;
}
return tepp.size()>=S.size()?S:tepp;
}
};