1980. Find Unique Binary String
Description
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.
Solutions
Solution 1: Counting + Enumeration
Since the number of occurrences of '1' in a binary string of length \(n\) can be \(0, 1, 2, \cdots, n\) (there are \(n + 1\) possibilities), we can certainly find a new binary string that has a different number of '1's from every string in nums
.
We can use an integer \(mask\) to record the occurrence of '1' in all strings, i.e., the \(i\)-th bit of \(mask\) is \(1\) indicates that there is a string of length \(n\) in which '1' appears \(i\) times, otherwise it does not exist.
Then we start to enumerate the number of times '1' appears in a binary string of length \(n\) from \(0\). If the \(i\)-th bit of \(mask\) is \(0\), it means that there is no string of length \(n\) in which '1' appears \(i\) times. We can return this string as the answer.
The time complexity is \(O(L)\), where \(L\) is the total length of the strings in nums
. The space complexity is \(O(1)\).
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
1 2 3 4 5 6 7 8 9 10 11 |
|
1 2 3 4 5 6 7 8 9 10 11 12 |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
|
Solution 2
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 8 9 10 |
|
Solution 3
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 6 7 8 9 10 |
|