Find Kth Bit in Nth Binary String - Problem
Given two positive integers n and k, the binary string Sn is formed as follows:
S1 = "0"
Si = Si-1 + "1" + reverse(invert(Si-1)) for i > 1
Where + denotes the concatenation operation, reverse(x) returns the reversed string x, and invert(x) inverts all the bits in x (0 changes to 1 and 1 changes to 0).
For example, the first four strings in the above sequence are:
S1 = "0"S2 = "011"S3 = "0111001"S4 = "011100110110001"
Return the kth bit in Sn. It is guaranteed that k is valid for the given n.
Input & Output
Example 1 — Basic Case
$
Input:
n = 3, k = 1
›
Output:
0
💡 Note:
S3 = "0111001". The 1st bit is "0"
Example 2 — Middle Position
$
Input:
n = 4, k = 11
›
Output:
1
💡 Note:
S4 = "011100110110001". The 11th bit is "1"
Example 3 — Second Half
$
Input:
n = 2, k = 3
›
Output:
1
💡 Note:
S2 = "011". The 3rd bit is "1"
Constraints
- 1 ≤ n ≤ 20
- 1 ≤ k ≤ 2n - 1
Visualization
Tap to expand
Understanding the Visualization
1
Input
Given n=3, k=5 - find 5th bit in S3
2
Pattern
S3 = S2 + "1" + reverse(invert(S2))
3
Result
Navigate to position 5 without building full string
Key Takeaway
🎯 Key Insight: The recursive structure allows us to find any bit without building exponentially large strings
💡
Explanation
AI Ready
💡 Suggestion
Tab
to accept
Esc
to dismiss
// Output will appear here after running code