位向量法:
位运算符号:
& 与
| 或
^ 异或
~ 取反
<< 左移(乘),右补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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复