给一个字符串,统计每个字符出现的次数。
比如“aabbbadddff” 输出a_2_b_3_a_1_d_3_f_2
思路:遍历一遍,当[i]==[i-1]时,num++;当不等时 组合字符,num=1;
编码: string->char
string str = "abc";
string res = to_string(str[0]);// 返回的是 char 类型的ASCII 如果是‘a’ 此处返回的是97不是'a'
string sbu1 = str.substr(1,1);//substr(start,len)
string concat(string s1, string s2, string s3)
{
string re= s1 + "_" + s2 + (s3 == ""? s3 : "_" + s3);
return re;
}
string getCountString(string str)
{
if (str == "")
{
return "";
}
char ch=str[0]; //'a'
string res = str.substr(0,1); //to_string()方法会返回char的ASCII '97'
int m_num = 1;
for (int i = 1; i < str.length(); i++)
{
if (str[i] != str[i - 1])//前后不等
{
res = concat(res,to_string(m_num), str.substr(i,1));
m_num = 1;
}
else
{
m_num++;
}
}
return concat(res,to_string(m_num),"");
}
void getCountString_main()
{
cout << "*****getCountString_main**********" << endl;
string strinput="aaabbaddddffc";
string str=getCountString(strinput);
cout << str << endl;
}
原文链接: https://www.cnblogs.com/jasmineTang/p/14369275.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/328580
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!