Skip to content

Latest commit

 

History

History

1980

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

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.

Related Topics:
Array, String, Backtracking

Similar Questions:

Hints:

  • We can convert the given strings into base 10 integers.
  • Can we use recursion to generate all possible strings?

Solution 1.

// OJ: https://leetcode.com/problems/find-unique-binary-string/
// Author: github.com/lzl124631x
// Time: O(N^2)
// Space: O(N)
class Solution {
public:
    string findDifferentBinaryString(vector<string>& A) {
        int n = A.size();
        unordered_set<int> s;
        for (auto &n : A) s.insert(stoi(n, 0, 2));
        for (int i = 0; i <= n; ++i) {
            if (s.count(i)) continue;
            string ans;
            for (int j = 0; j < n; ++j) ans[len - j - 1] = '0' + (i >> j & 1);
            return ans;
        }
        return "";
    }
};