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) { string temp = ""; string res=""; if(n == 0) return res; int i=2; res ="1"; while(i <= n) { temp = res; res = ""; int m = temp.length(); char flag = temp[0]; int count = 1; for(int j=1; j<m; j++) { if(flag == temp[j]) count++; else { res += (char)(count+48); res += flag; count = 1; flag = temp[j]; } } res += (char)(count+48); res += flag; i++; } return res; } };
原文地址:http://blog.csdn.net/shaya118/article/details/42624625