Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save SuryaPratapK/afb03e989e9cce8a62e5767cc4d07dab to your computer and use it in GitHub Desktop.
Save SuryaPratapK/afb03e989e9cce8a62e5767cc4d07dab to your computer and use it in GitHub Desktop.
class Solution {
string res;
bool buildNumber(unordered_set<string>& numbers,string& curr,int& n){
if(curr.size() == n){
if(numbers.count(curr)==0){
res = curr;
return true;
}
return false;
}
//Try '0'
curr.push_back('0');
if(buildNumber(numbers,curr,n)) return true;
curr.pop_back();
//Try '1'
curr.push_back('1');
if(buildNumber(numbers,curr,n)) return true;
curr.pop_back();
return false;
}
public:
string findDifferentBinaryString(vector<string>& nums) {
int n=nums.size();
unordered_set<string> numbers(nums.begin(),nums.end());
string curr="";
buildNumber(numbers,curr,n);
return res;
}
};
/*
//JAVA
import java.util.*;
class Solution {
private String res;
private boolean buildNumber(Set<String> numbers, String curr, int n) {
if (curr.length() == n) {
if (!numbers.contains(curr)) {
res = curr;
return true;
}
return false;
}
// Try '0'
if (buildNumber(numbers, curr + '0', n)) {
return true;
}
// Try '1'
if (buildNumber(numbers, curr + '1', n)) {
return true;
}
return false;
}
public String findDifferentBinaryString(String[] nums) {
int n = nums.length;
Set<String> numbers = new HashSet<>(Arrays.asList(nums));
buildNumber(numbers, "", n);
return res;
}
}
#Python
class Solution:
def __init__(self):
self.res = ""
def buildNumber(self, numbers, curr, n):
if len(curr) == n:
if curr not in numbers:
self.res = curr
return True
return False
# Try '0'
if self.buildNumber(numbers, curr + '0', n):
return True
# Try '1'
if self.buildNumber(numbers, curr + '1', n):
return True
return False
def findDifferentBinaryString(self, nums):
n = len(nums)
numbers = set(nums)
self.buildNumber(numbers, "", n)
return self.res
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment