On the first row, we write a 0. 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.
Given row N and index K, return the K-th indexed symbol in row N. (The values of K are 1-indexed.) (1 indexed).
Examples: Input: N = 1, K = 1 Output: 0
Input: N = 2, K = 1 Output: 0
Input: N = 2, K = 2 Output: 1
Input: N = 4, K = 5 Output: 1
Explanation: row 1: 0 row 2: 01 row 3: 0110 row 4: 01101001
Link to the Problem: https://leetcode.com/explore/learn/card/recursion-i/253/conclusion/1675/
Solution:
class Solution {
public:
int kthGrammar(int N, int K) {
if(N==0||K==0)
return 0;
string result="0";
string finals;
int i,j;
for(j=0;j<N-1;j++)
{
for(i=0;i<result.length();i++)
{
if(result[i]=='0')
finals.append("01");
else
finals.append("10");
}
result=finals;
}
return result[K-1]-'0';
}
};