Skip to content

2107. Find Unique Binary String

Difficulty: Medium

LeetCode Problem View on GitHub


2107. Find Unique Binary String

Medium


Given an array of strings nums containing n unique binary strings each of length n, return a binary string of length n that does not appear in nums. If there are multiple answers, you may return any of them.

 

Example 1:

Input: nums = ["01","10"]
Output: "11"
Explanation: "11" does not appear in nums. "00" would also be correct.

Example 2:

Input: nums = ["00","01"]
Output: "11"
Explanation: "11" does not appear in nums. "10" would also be correct.

Example 3:

Input: nums = ["111","011","001"]
Output: "101"
Explanation: "101" does not appear in nums. "000", "010", "100", and "110" would also be correct.

 

Constraints:

  • n == nums.length
  • 1 <= n <= 16
  • nums[i].length == n
  • nums[i] is either '0' or '1'.
  • All the strings of nums are unique.

Solution

class Solution {
    public String findDifferentBinaryString(String[] nums) {
        int n = nums.length;
        HashSet<String> set = new HashSet<>();
        for(int i = 0; i < n; i++) set.add(nums[i]);
        String ans = solve("", n, set);
        return ans;
    }
    public static String solve(String ans, int n, HashSet<String> set) {
        if(ans.length() == n) {
            if(!set.contains(ans)) return ans;
            return "";
        }
        String z = solve(ans + "0", n, set);
        if(z.length() > 0) return z;
        return solve(ans + "1", n, set);
    }
}

Complexity Analysis

  • Time Complexity: O(?)
  • Space Complexity: O(?)

Approach

Detailed explanation of the approach will be added here