-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathKthBitInBinaryString.java
43 lines (42 loc) · 1.16 KB
/
KthBitInBinaryString.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.util.*;
public class KthBitInBinaryString {
//https://leetcode.com/problems/find-kth-bit-in-nth-binary-string/
public static void main(String[] args) {
System.out.println(findKthBit(4,11));
}
public static char findKthBit(int n, int k)
{
// String ans = find(n);
// System.out.println(ans);
ArrayList<String> s = new ArrayList<String>();
findRec(n,s,new ArrayList<String>());
String ans = s.get(s.size()-1);
return ans.charAt(k-1);
}
public static String find(int n)
{
String s = "0";
String rev = "1";
for(int i=1;i<=n;i++)
{
String temp = s+"";
s = s+"1"+rev;
rev = temp + "0" + rev;
}
return s;
}
public static void findRec(int n, ArrayList<String> s, ArrayList<String> rev)
{
if(n==1)
{
s.add("0");
rev.add("1");
return;
}
findRec(n-1,s,rev);
String str = s.get(s.size()-1) + "1" + rev.get(rev.size()-1);
String r = s.get(s.size()-1) + "0" + rev.get(rev.size()-1);
s.add(str);
rev.add(r);
}
}