前言
位运算在算法优化中常能带来意想不到的效果,特别是在空间受限或需要极致性能的场景下。今天我们通过两道经典题目,实战演练位图与异或运算的核心技巧。
位运算基础前置知识

上面提到的公式和推导建议大家记下来,这是后续解题的基础。
34. 判断字符是否唯一
题目链接:
题目描述:

题目示例:

解法(位图的思想)
算法思路
利用【位图】的思想,每一个【比特位】代表一个【字符】。一个 int 类型的变量有 32 位,足够表示所有的小写字母。如果比特位是 0,表示该字符未出现过;如果是 1,则表示已出现。这样我们就可以用一个整数来充当哈希表,无需额外开辟空间。
C++ 算法代码
class Solution {
public:
bool isUnique(string astr) {
if (astr.size() > 26) return false;
int m = 0;
for (auto& s : astr) {
((m >> (s - )) & ) ;
m |= ( << (s - ));
}
;
}
};








