mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-06 09:06:51 +08:00
Delete CountNumBinaryStrings
This commit is contained in:
@ -1,97 +0,0 @@
|
||||
package DynamicProgramming;
|
||||
/*
|
||||
* here is a important algo in this we have to count
|
||||
* maximum no. of different binary strings which doesnot have
|
||||
* consectuive 1s
|
||||
|
||||
|
||||
|
||||
Test Case:
|
||||
|
||||
int n=30;
|
||||
|
||||
startAlgo();
|
||||
System.out.println(numStrIS(n));
|
||||
System.out.println(endAlgo()+"ms");
|
||||
|
||||
startAlgo();
|
||||
CountNumBinaryStr out=new CountNumBinaryStr();
|
||||
System.out.println(out.numStrR(n).ans);
|
||||
System.out.println(endAlgo()+"ms");
|
||||
|
||||
startAlgo();
|
||||
System.out.println(countStrings(n,0));
|
||||
System.out.println(endAlgo()+"ms");
|
||||
|
||||
|
||||
|
||||
*/
|
||||
public class CountNumBinaryStr {
|
||||
public static long startTime;
|
||||
public static long endTime;
|
||||
public static void startAlgo() {
|
||||
startTime=System.currentTimeMillis();
|
||||
}
|
||||
public static long endAlgo() {
|
||||
endTime=System.currentTimeMillis();
|
||||
return endTime-startTime;
|
||||
}
|
||||
public static int numStrIS(int n) {
|
||||
int[] zeros=new int[n];
|
||||
int []ones=new int[n];
|
||||
//seed
|
||||
zeros[0]=1;
|
||||
ones[0]=1;
|
||||
for(int i=1;i<n;i++) {
|
||||
zeros[i]=zeros[i-1]+ones[i-1];
|
||||
ones[i]=zeros[i-1];
|
||||
}
|
||||
int ans=zeros[n-1]+ones[n-1];
|
||||
return ans;
|
||||
}
|
||||
private class Binary{
|
||||
int ones;
|
||||
int zeros;
|
||||
int ans;
|
||||
Binary(int ones,int zeros){
|
||||
this.ones=ones;
|
||||
this.zeros=zeros;
|
||||
this.ans=0;
|
||||
}
|
||||
Binary(){}
|
||||
}
|
||||
public Binary numStrR(int n) {
|
||||
if(n==1) {
|
||||
Binary br=new Binary(1,1);
|
||||
return br;
|
||||
}
|
||||
Binary mr=new Binary();
|
||||
Binary rr=numStrR(n-1);
|
||||
mr.zeros=rr.zeros+rr.ones;
|
||||
mr.ones=rr.zeros;
|
||||
mr.ans=mr.zeros+mr.ones;
|
||||
return mr;
|
||||
}
|
||||
public static int countStrings(int n, int lastDigit)
|
||||
{
|
||||
if (n == 0) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
// if only one digit is left
|
||||
if (n == 1) {
|
||||
return (lastDigit == 1) ? 1: 2;
|
||||
}
|
||||
|
||||
// if last digit is 0, we can have both 0 and 1 at current pos
|
||||
if (lastDigit == 0) {
|
||||
return countStrings(n - 1, 0) + countStrings(n - 1, 1);
|
||||
}
|
||||
// if last digit is 1, we can have only 0 at current position
|
||||
else {
|
||||
return countStrings(n - 1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user