← All problems

1980. Find Unique Binary String

MediumOpen on LeetCodeProblem statement

Problem Statement

1980. 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:

Java

Source file
class Solution {
    public String findDifferentBinaryString(String[] nums) {
        Set<Integer> vis = new HashSet<>();
        for (String s : nums)
            vis.add(parseBinary(s));
        int n = nums.length;
        for (int i = 0; i <= n; i++) {
            if (vis.contains(i))
                continue;
            String ans = Integer.toBinaryString(i);
            while (ans.length() < n)
                ans = "0" + ans;
            return ans;
        }
        return "";
    }

    private int parseBinary(String s) {
        int x = 0;
        for (char c : s.toCharArray())
            x = (x << 1) + (c - '0');
        return x;
    }
}