[算法]——位运算(一)
目录
一、前言
二、正文
1.判定字符是否唯一
1.1 题目解析
1.2算法原理
1.3 具体代码
1.4 其余解法
2.丢失的数字
2.1 题目解析
2.2算法解析
2.3 具体代码
2.4 其余解法
三、结语
一、前言
在常见位运算总结一文中已经为小伙伴们介绍了常见的位运算符以及常见的位操作,接下来我们就进入实战环节,来运用该文中我们所学,来帮助大家更好的理解位运算。
二、正文
1.判定字符是否唯一
1. 判定字符是否唯一 【力扣】
1.1 题目解析
对于本题,其要求就是让我们根据所给字符串,判断其中的字符是否唯一。像示例1中“leetcode”中存在3个字符\'e\',因此不唯一;而示例二中的“abc”的每一字符则全部唯一。
1.2算法原理
由于题目限定了字符串中均为小写字母,即字符种类是唯一的,只有26个,因此我们就可以利用位图的思想,通过一个int类型的位图来记录每种字符出现的次数是否唯一,如果位图上某一位为0,即表示没出现过;为1则表示出现过。
因此当我们不断遍历字符串时,倘若某一字符对应位图上的值为1则说明该字符串不唯一,返回false;反之遍历完字符串,则说明该字符串中所有字符均唯一,返回true。<