哪些网站可以做平面设计挣钱,工作证的照片几寸,邓州市工程建设信息网,logo设计报价明细表题解#xff1a;判断字符是否唯一(位运算算法) 目录 1.题目2.题解3.位图参考代码4.细节5.总结 1.题目
题目链接#xff1a;LINK
2.题解
题解有两种方法#xff0c; 一是做一个哈希数组#xff0c;去查重#xff1b; 二是直接用一个变量每一位来对应表示是否有这个字母… 题解判断字符是否唯一(位运算算法) 目录 1.题目2.题解3.位图参考代码4.细节5.总结 1.题目
题目链接LINK
2.题解
题解有两种方法 一是做一个哈希数组去查重 二是直接用一个变量每一位来对应表示是否有这个字母即可(位图算法)。
下面仅说位图算法
3.位图参考代码
class Solution {
public:bool isUnique(string astr) {if(astr.length() 26) return false;// 鸽巢原理int ret 0;//32个比特位全是0for(auto ch : astr){int n ch - a;// 查重if(((ret n) 1) 1) return false;// 加入ret中ret (ret | (1 n));}return true;}
};4.细节
鸽巢原理 这里如果一个string的长度 26 且 都为小写字母的话那么一定有重复的所以可以不用判断直接返回false。
5.总结
用位图比哈希数组更加节约空间直接把O(N)的空间复杂度降成了O(1)… EOF