没写代码的题,其链接点开都是有代码的。开始前请思考下图:
小试牛刀
class Solution {
public:
int hammingWeight(int n) {
int res = 0;
while (n) {
n &= n - 1;
res++;
}
return res;
}
};
class Solution {
public:
vector<int> countBits(int n) {
vector<int> res(n + 1);
for (int i = 0; i < n + 1; ++i) {
res[i] = count(i);
}
return res;
}
int count(int n) {
int res = 0;
while (n) {
n &= n - 1;
res++;
}
return res;
}
};
进入正题
class Solution {
public:
bool isUnique(string astr) {
if (astr.size() > 26)
return false;
int bit = 0;
for (auto e : astr) {
if (bit >> (e - 'a'))
return false;
else
bit |= 1 << (e - 'a');
}
return true;
}
};
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 算法5:位运算
发表评论 取消回复