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.length1 <= n <= 16nums[i].length == nnums[i]is either'0'or'1'.
Similar Questions:
- Missing Number (Easy)
- Find All Numbers Disappeared in an Array (Easy)
- Random Pick with Blacklist (Hard)
// 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 += '0' + (i & 1);
i >>= 1;
}
reverse(begin(ans), end(ans));
return ans;
}
return "";
}
};