关闭

LeetCode之Count and Say

标签: Leetcode
188人阅读 评论(0) 收藏 举报
分类:
/*这是一道模拟题。第n个序列是根据n-1个序列获得的,所以
通过n-1次循环即可获得结果。*/
class Solution {
public:
    string countAndSay(int n) {
        string res("1");
        while(--n) res = getNext(res);
        return res;
    }
    
    string getNext(string &s){
        string res("");
        for(int i = 0; i < s.size();){
            int j = i + 1;
            for(; j < s.size(); ++j){
                if(s[j] != s[i]) break;
            }
            res += num2string(j-i) + s[i];
            i = j;
        }
        return res;
    }
    
    string num2string(int num){
        string res("");
        while(num > 0){
            char c = '0' + num%10;
            res += c;
            num /= 10;
        }
        reverse(res.begin(), res.end());
        return res;
    }
};

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:47363次
    • 积分:1802
    • 等级:
    • 排名:千里之外
    • 原创:125篇
    • 转载:68篇
    • 译文:1篇
    • 评论:0条