文章目录

  • 1. 题目
  • 2. 解题

1. 题目

给你一个字符串数组 nums ,该数组由 n 个 互不相同 的二进制字符串组成,且每个字符串长度都是 n 。
请你找出并返回一个长度为 n 且 没有出现 在 nums 中的二进制字符串。
如果存在多种答案,只需返回 任意一个 即可。

示例 1:
输入:nums = ["01","10"]
输出:"11"
解释:"11" 没有出现在 nums 中。"00" 也是正确答案。示例 2:
输入:nums = ["00","01"]
输出:"11"
解释:"11" 没有出现在 nums 中。"10" 也是正确答案。示例 3:
输入:nums = ["111","011","001"]
输出:"101"
解释:"101" 没有出现在 nums 中。"000"、"010"、"100"、"110" 也是正确答案。提示:
n == nums.length
1 <= n <= 16
nums[i].length == n
nums[i] 为 '0' 或 '1'

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-unique-binary-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 转成数字哈希存储,遍历 0 - 216 找到不存在的,转成2进制,前面补零
class Solution {public:string findDifferentBinaryString(vector<string>& nums) {unordered_set<int> s;string ans;for(auto& n : nums){int number = 0;for(char c : n){number = number*2+(c-'0');}s.insert(number);}for(int i = 0; i < (1<<16); ++i)if(!s.count(i)){ans = convert01(i);while(ans.size() < nums[0].size()){ans.insert(ans.begin(),'0');}return ans;}return "";}string convert01(int x){string ans = "";while(x){if(x&1) ans += "1";else ans += "0";x >>= 1;}reverse(ans.begin(), ans.end());return ans;}
};

4 ms 10 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode 1980. 找出不同的二进制字符串相关推荐

  1. LeetCode——1888. 使二进制字符串字符交替的最少反转次数(Minimum Number of Flips to Make the Binary ...)[中等]——分析及代码(Java)

    LeetCode--1888. 使二进制字符串字符交替的最少反转次数[Minimum Number of Flips to Make the Binary String Alternating][中等 ...

  2. LeetCode 1784. 检查二进制字符串字段

    文章目录 1. 题目 2. 解题 1. 题目 给你一个二进制字符串 s ,该字符串 不含前导零 . 如果 s 最多包含 一个由连续的 '1' 组成的字段 ,返回 true​​​ .否则,返回 fals ...

  3. LeetCode 1702. 修改后的最大二进制字符串(贪心)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个二进制字符串 binary ,它仅有 0 或者 1 组成.你可以使用下面的操作任意次对它进行修改: 操作 1 :如果二进制串包含子字符串 &quo ...

  4. C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数

    C++描述 LeetCode 5676. 生成交替二进制字符串的最少操作数   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在C ...

  5. LeetCode每日一题——1758. 生成交替二进制字符串的最少操作数

    LeetCode每日一题系列 题目:1758. 生成交替二进制字符串的最少操作数 难度:简单 文章目录 LeetCode每日一题系列 题目 示例 思路 题解 题目 给你一个仅由字符 '0' 和 '1' ...

  6. LeetCode 1864. 构成交替字符串需要的最小交换次数

    文章目录 1. 题目 2. 解题 1. 题目 给你一个二进制字符串 s ,现需要将其转化为一个 交替字符串 . 请你计算并返回转化所需的 最小 字符交换次数,如果无法完成转化,返回 -1 . 交替字符 ...

  7. 算法---找出第 N 个二进制字符串中的第 K 位(Kotlin)

    题目 给你两个正整数 n 和 k,二进制字符串 Sn 的形成规则如下: S1 = "0" 当 i > 1 时,Si = Si-1 + "1" + reve ...

  8. leetcode 1404. 将二进制表示减到 1 的步骤数

    leetcode 1404. 将二进制表示减到 1 的步骤数 给你一个以二进制形式表示的数字 s .请你返回按下述规则将其减少到 1 所需要的步骤数: 如果当前数字为偶数,则将其除以 2 . 如果当前 ...

  9. Leetcode1702. 修改后的最大二进制字符串[C++题解]:思维题

    文章目录 题目分析 题目链接 题目分析 只有2种操作:00变成10,10变成01,为了使得结果最大,需要前面尽可能变成1.怎么才能使得某一个的0变成1呢? 经过观察,只要这个0后面的某一位还有0,该位 ...

最新文章

  1. M1芯片搞数据科学好使吗?5种基准测试给你答案
  2. rpm包安装和卸载,rpm查询,yum工具详解,yum仓库搭建
  3. linux c 解析生成json(jansson安装和使用)
  4. 我是这样开始学编程的
  5. 【BZOJ-3033】太鼓达人 欧拉图 + 暴搜
  6. 云湖共生-释放企业数据价值
  7. 计算机网络子网划分_子网划分和超网| 计算机网络
  8. SQL Server2005探索之---正确使用索引
  9. Swift 与众不同的地方
  10. 11.20,winfrom,增加,查询,删除,修改
  11. ZeptoLab Code Rush 2015 B. Om Nom and Dark Park DFS
  12. zen服务器芯片,Intel颤抖!AMD 32核心终极版Zen亮相:媲美人脑
  13. mobi 转 pdf mobi格式转pdf格式 ePub azw3
  14. 【MATLAB统计分析与应用100例】案例015:matlab读取Excel数据,进行值聚类分析
  15. 马翔:联想双态IT 助力企业IT新变革
  16. 《TensorFlow技术解析与实战》——3.3 可视化的例子
  17. 软考中级考试信息系统管理工程师怎么样??
  18. 目标检测——Faster RCNN
  19. portal服务器信息超时,某局点iMC-EIA Portal认证提示“向Portal Server发送请求超时”经典案例...
  20. 中台战略全解读(三):业务中台建设

热门文章

  1. 深度学习目标检测之 YOLO v2
  2. 特别慢_背什么都特别慢,该怎么提高记忆力?
  3. 恩智浦智能车大赛2020_内蒙古科技大学第九届智能车大赛校内公开赛总决赛
  4. oracle 返回表的函数,oracle 返回表函数
  5. c语言 java append_C++中append函数的用法和函数定义。谢谢!
  6. 高中关于人工智能方面的课题_如何看待计算机专业开始设置人工智能课程
  7. 浅析bootstrap原理及优缺点
  8. SQL-ALTER-change和modify区别
  9. HBase学习笔记——概念及原理
  10. “元宇宙” 是什么东西?