Magical String

题目来源
题目的意思比较难以解释,还是自己看题目去吧。
没想明白应该怎么做。然后就看答案了。
这个解法比较巧妙,利用到了49 ^ 3 = 50, 50 ^ 3 = 49这么个特性。
但是需要用到O(n)的空间。大神还写了个logN空间的解法,懒得去看了…

class Solution {
public:
    int magicalString(int n) {
        string S = "122";
        int i = 2;
        while (S.size() < n)
            S += string(S[i++] - '0', S.back() ^ 3);
        return count(S.begin(), S.begin()+n, '1');
    }
};
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容