g0701_0800.s0779_k_th_symbol_in_grammar.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g0701_0800.s0779_k_th_symbol_in_grammar;
// #Medium #Math #Bit_Manipulation #Recursion #2022_03_26_Time_0_ms_(100.00%)_Space_40.9_MB_(42.87%)
/**
* 779 - K-th Symbol in Grammar\.
*
* Medium
*
* We build a table of `n` rows ( **1-indexed** ). We start by writing `0` in the 1st
row. Now in every subsequent row, we look at the previous row and replace each occurrence of `0` with `01`, and each occurrence of `1` with `10`.
*
* * For example, for `n = 3`, the 1st
row is `0`, the 2nd
row is `01`, and the 3rd
row is `0110`.
*
* Given two integer `n` and `k`, return the kth
( **1-indexed** ) symbol in the nth
row of a table of `n` rows.
*
* **Example 1:**
*
* **Input:** n = 1, k = 1
*
* **Output:** 0
*
* **Explanation:** row 1: 0
*
* **Example 2:**
*
* **Input:** n = 2, k = 1
*
* **Output:** 0
*
* **Explanation:** row 1: 0 row 2: 01
*
* **Example 3:**
*
* **Input:** n = 2, k = 2
*
* **Output:** 1
*
* **Explanation:** row 1: 0 row 2: 01
*
* **Constraints:**
*
* * `1 <= n <= 30`
* * 1 <= k <= 2n - 1
**/
@SuppressWarnings("java:S1172")
public class Solution {
/*
* Time: O(logn)
* Space: O(1)
*/
public int kthGrammar(int n, int k) {
return Integer.bitCount(k - 1) % 2;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy