Given an array of strings nums containing nunique 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 '1's in a binary string of length \(n\) can be \(0, 1, 2, \cdots, n\) (a total of \(n + 1\) possibilities), we can always find a new binary string whose count of '1's differs from every string in \(\textit{nums}\).
We use an integer \(\textit{mask}\) to record the counts of '1's across all strings, where the \(i\)-th bit of \(\textit{mask}\) being \(1\) indicates that a binary string of length \(n\) with exactly \(i\) occurrences of '1' exists in \(\textit{nums}\), and \(0\) otherwise.
We then enumerate \(i\) starting from \(0\), representing the count of '1's in a binary string of length \(n\). If the \(i\)-th bit of \(\textit{mask}\) is \(0\), it means no binary string of length \(n\) with exactly \(i\) occurrences of '1' exists, and we can return that string as the answer.
The time complexity is \(O(L)\), where \(L\) is the total length of all strings in \(\textit{nums}\). The space complexity is \(O(1)\).
We can construct a binary string \(\textit{ans}\) of length \(n\), where the \(i\)-th bit of \(\textit{ans}\) differs from the \(i\)-th bit of \(\textit{nums}[i]\). Since all strings in \(\textit{nums}\) are distinct, \(\textit{ans}\) will not appear in \(\textit{nums}\).
The time complexity is \(O(n)\), where \(n\) is the length of the strings in \(\textit{nums}\). Ignoring the space used by the answer string, the space complexity is \(O(1)\).