概述
位向量法:
位运算符号:
& 与
| 或
^ 异或
~ 取反
<< 左移(乘),右补0
>> 右移(除),正数左补0,负数左补1
class Solution {
public:
bool isUnique(string astr) {
int checker = 0;
for(int i=0;i<astr.size();i++){
int val = astr[i] - 'a';
if((checker & (1<<val))>0){
return false;
}
checker |= (1<<val);
}
return true;
}
};
checker的每一位代表的是一个字母,通过val计算出字符与’a’的距离,获得它应该对应的位。
1<<val使得只有字符那一位为1。
checker & (1<<val)是为了检查当前字符是否在之前出现过。
checker |= (1<<val):记录当前字符出现过。
最后
以上就是阔达哈密瓜为你收集整理的《程序员面试金典》面试题01.01 判定字符是否唯一的全部内容,希望文章能够帮你解决《程序员面试金典》面试题01.01 判定字符是否唯一所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复