
思路:就是在for循环中遍历字符串,如果有重复的字符则进入while循环,同时int temp计数,最后加上。
class Zipper {
public:
string zipString(string iniString)
{
string ret;
for(int i=0;i<=iniString.length();++i)
{
ret+=iniString[i];
int temp=1;
if(i+1<=iniString.length() && iniString[i+1]==iniString[i])
{
while(i+1<=iniString.length() && iniString[i+1]==iniString[i])
{
++temp;
++i;
}
}
ret+=to_string(temp);
}
if(iniString.size()<=ret.size())
{
return iniString;
}
return ret;
}
};
本文详细介绍了如何使用C++实现一种字符串压缩算法。该算法通过遍历字符串并检测连续重复字符,将重复字符的数量以数字形式附加到字符后面,从而压缩字符串。在遇到重复字符时,会进入while循环进行计数。最终,如果压缩后的字符串长度小于等于原字符串长度,则返回原字符串,否则返回压缩后的字符串。
1564

被折叠的 条评论
为什么被折叠?



