字符串压缩:
例如:aaaabbbccx-->4a3b2cx,单个字符不压缩。
基本思想:前后两两字符作比较,若相同则计数器加一,若不同则直接输出 。
程序代码:
#include<iostream>
int main()
{
string s;
int count=1;
cin>>s;
s=s+" ";//加上空格是为了方便最后一个字符的比较
int len=s.size();
for(int i=0;i<len-1;i++)//注意长度len要减1,否则访问越界
{
if(s[i]==s[i+1])
{
count++;
}
else
{
if(count!=1) //若是一个字符才压缩
{
cout<<count<<s[i];
count=1; //计数器归1
}
else
{
cout<<s[i];
}
}
}
cout<<endl;
}