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.length1 <= n <= 16nums[i].length == nnums[i]is either'0'or'1'.- All the strings of
numsare unique.
Solutions
This code finds a binary string that is not in the input array. It works by first converting all binary strings to decimal numbers and storing them in a Set for quick lookup, then starting from 0 and incrementing a counter until it finds a decimal number that isn't in the set (using while (set.has(res))). Finally, it converts that decimal number back to a binary string using toString(2) and pads it with leading zeros to match the original string length, ensuring the result has the same format as the input strings.
/**
* @param {string[]} nums
* @return {string}
*/
var findDifferentBinaryString = function(nums) {
const n = nums[0].length;
const set = new Set(nums.map(x => parseInt(x, 2)));
let res = 0;
while (set.has(res)) {
res++;
}
return res.toString(2).padStart(n, '0');
};