leetcode-38-count and say

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.

求第n个序列的输出。

基本思路,迭代。
循环计算下一个输出,循环调用next函数。
int b=8;
char a=b+’0’
此句将b转换成str的‘8’存在a中。

class Solution {  
public:  
    string next(string s)  
    {  
        string ret;  
        char pre =s[0];  
        int count = 1;  
        for(int i = 1; i < s.size(); i ++)  
        {  
            if(s[i]==pre)  
            {  
                count ++;  
            }else{  

                char tmp =  count+'0';  //整数count转换成字符
                ret = ret + tmp + pre;  
                pre = s[i];  
                count = 1;  
            }  
        }  
        char tmp =  count+'0';  
        ret = ret + tmp + pre;  
        return   ret;  
    }  
    string countAndSay(int n) {  
        string ret = "1";  
        int j = 1;  
        while( j< n){  
            ret=next(ret);  
            j++;  
        }  
        return ret;  
    }  
};  

你可能感兴趣的:(leetcode,c++)