今天发现C++ 11中推出了一个非常有用的函数 to_string() , 非常有效的解决了C++中其他类型(数字)转换成string。咱们再也不用麻烦的使用stringstream去转换了。贴上一个code,Leetcode中Count and Say
The count-and-say sequence is the sequence of integers beginning as follows:
1, 11, 21, 1211, 111221, ...
1
is read off as "one 1"
or 11
.
11
is read off as "two 1s"
or 21
.
21
is read off as "one 2
, then one 1"
or 1211
.
Given an integer n, generate the nth sequence.
Note: The sequence of integers will be represented as a string.
class Solution {
public:
string countAndSay(int n) {
int i=1;
string val=to_string(1);
while(i<n){
val=getSequence(val);
i++;
}
return val;
}
string getSequence(string val){
int cnt=1;
string newstr="";
int i;
for(i=0;i<val.length()-1;i++){
if(val[i+1]==val[i]) cnt++;
else{
newstr=newstr+to_string(cnt)+val[i]; //有木有看到这里闪亮的 to_string() !
cnt=1;
}
}
newstr=newstr+to_string(cnt)+val[i];
return newstr;
}
};
注意这里,nth个串意味着需要转换n-1次,而不是n次!