• leetcode - 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.
    
    • 1
    • 2
    • 3

    Example 2:

    Input: nums = ["00","01"]
    Output: "11"
    Explanation: "11" does not appear in nums. "10" would also be correct.
    
    • 1
    • 2
    • 3

    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.
    
    • 1
    • 2
    • 3

    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.
    
    • 1
    • 2
    • 3
    • 4
    • 5

    Solution

    Brute Force

    Since n is not big, just go from 0 to 2 n 2^n 2n to find the missing value. Remember to pad 0 at the left for each binary number.

    Time complexity: o ( 2 n ∗ n ) o(2^n*n) o(2nn)
    Space complexity: o ( 1 ) o(1) o(1)

    string

    Sort the nums, and starts with 0, every time if the number equals to the number in nums, then current number plus 1, until the current number is not the same as the number in nums.

    Time complexity: o ( n log ⁡ n ) o(n\log n) o(nlogn)
    Space complexity: o ( 1 ) o(1) o(1)

    Cantor’s diagonal

    Solved after help, this is so brilliant!!

    Construct a string, the 1st digit is different with 1st number, and the 2nd digit is different with 2nd number, then after go through all the numbers we get the final results. since it’s different with all the numbers.

    Time complexity: o ( n ) o(n) o(n)
    Space complexity: o ( 1 ) o(1) o(1)

    Code

    Brute Force

    class Solution:
        def findDifferentBinaryString(self, nums: List[str]) -> str:
            n = len(nums)
            for i in range(2**n):
                binary_string = bin(i)[2:]
                binary_string_pad = '0' * (n - len(binary_string)) + binary_string
                if binary_string_pad not in nums:
                    return binary_string_pad
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    String

    class Solution:
        def findDifferentBinaryString(self, nums: List[str]) -> str:
            n = len(nums)
            prev = '0' * n
            nums.sort()
    
            def add_one(binary_str: str) -> str:
                binary_num = list(binary_str)
                for i in range(len(binary_num) - 1, -1, -1):
                    if binary_num[i] == '1':
                        binary_num[i] = '0'
                    else:
                        binary_num[i] = '1'
                        break
                return ''.join(binary_num)
    
            for each_num in nums:
                if prev == each_num:
                    prev = add_one(prev)
                else:
                    return prev
            return prev
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    Cantor’s diagonal

    class Solution:
        def findDifferentBinaryString(self, nums: List[str]) -> str:
            n = len(nums)
            res = ['0'] * n
            for i in range(n):
                res[i] = '1' if nums[i][i] == '0' else '0'
            return ''.join(res)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    关于wmi的参数拦截
    Dubbo基本用法-Dubbo Provider配置
    JVM学习-类加载过程(一)
    【Python自学笔记】报错No module Named Wandb
    计算机毕业设计(附源码)python政府项目管理平台
    【软件设计师】面向对象类图的六种关系
    pandas分组与聚合groupby()函数详解
    win10下wsl2使用记录(系统迁移到D盘、配置国内源、安装conda环境、配置pip源、安装pytorch-gpu环境、安装paddle-gpu环境)
    鸿蒙HarmonyO实战-ArkUI动画(组件内转场动画)
    TensorFlow实战教程(三十二)-Transformer的商品评论情感分析 机器学习和深度学习的Baseline模型实现
  • 原文地址:https://blog.csdn.net/sinat_41679123/article/details/134454156