K-th Symbol in Grammar
MediumMathBit ManipulationRecursion
Solution
export function kthGrammar(n: number, k: number): number {
if (n === 1) {
return 0;
}
let symbol = 0;
for (let row = n; 1 < row; row--) {
const cols = 2 ** (row - 1);
if (cols / 2 < k) {
symbol = symbol === 0 ? 1 : 0;
k -= cols / 2;
}
}
return symbol;
}