LeetCode——第K个语法符号

题目地址:https://leetcode-cn.com/problems/k-th-symbol-in-grammar/

解题思路:找规律,第N行前半部分是第N-1行,后半部分是第N-1行按位取反。

class Solution {
public:
    int kthGrammar(int N, int K) {
        if (N == 1)
            return 0;
        int tmp = 1 << (N - 2);//前半部分和N-1行的一样
        if (K <= tmp)
            return kthGrammar(N - 1, K);
        else//后半部分是N-1行的反码
            return 1-kthGrammar(N - 1, K - tmp);
    }
};

 

posted @ 2020-10-21 18:26  CCxiao5  阅读(78)  评论(0编辑  收藏  举报