首页 > 其他 > 详细

LeetCode "Magical String"

时间:2017-01-14 14:50:08      阅读:298      评论:0      收藏:0      [点我收藏+]

Fun one. A matter of string generation by given rules. I know it can be much shorter.. but i‘m lazy to do that.

class Solution {
public:
    int magicalString(int n) {
        if(!n) return 0;
        if(n < 2) return 1;
        
        int ret = 1;
        string s = "1";
        bool isOne = false;
        int i = 0; // num inx
        while(s.length() < n)
        {
            int cnt = 0;
            if(isOne)
            {
                s += 1; ret ++;
                cnt = (s[++i] - 1) + 1;
                if(cnt == 2 && n > s.length())
                {s += 1; ret ++;}
            }
            else
            {
                s += 2;
                cnt = (s[++i] - 1) + 1;
                if(cnt == 2) s += 2;
            }
            
            // move on
            isOne = !isOne;
        }
        
        return ret;
    }
};

LeetCode "Magical String"

原文:http://www.cnblogs.com/tonix/p/6285227.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!