空字符串串联的问题

时间:2020-06-14 09:13:04

标签: c++ string c++11

string Solution::countAndSay(int n) {

if (n == 1) 
return "1"; 

if (n == 2)
return "11"; 

string str = "11";

for (int i = 3; i<=n; i++) 
{ 
    str += '$';
    int len = str.length(); 

    int cnt = 1; 
    string  tmp = "";

    for (int j = 1; j < len; j++) 
    { 
        if (str[j] != str[j-1]) 
        { 
            tmp += (cnt + '0');
            tmp += str[j-1]; 
            cnt = 1; 
        } 
        else cnt++; 
    } 
    str = tmp; 
} 
return str;

}

//这是InterviewBit问题计数和说出的解决方案。

问题是当我写 tmp = tmp +(cnt +'0')而不是tmp + =(cnt +'0') 然后编译错误:'operator +'不匹配(操作数类型为'std :: string'{aka'std :: __ cxx11 :: basic_string'}和'int')

我考虑了它的关联性问题,尝试将空字符串连接到其他字符串,反之亦然,但是两者都运行时没有错误。那是什么问题呢?预先感谢!

0 个答案:

没有答案