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