判定字符是否唯一
题目:实现一个算法,确定一个字符串 s
的所有字符是否全都不同,不要使用额外的数据结构。
思路:不使用额外的数据结构,但是显然每遍历到一个字符就要记录并检查,使用位运算是个不错的选择,通过某一位是0还是1记录,而具体的位可以通过字符与’a’的距离判断。
代码:
class Solution {
public:
bool isUnique(string astr) {
int len=astr.length(),flag=0,gap;
for(int i=0;i<len;i++){
gap=astr[i]-'a';
if(flag&(1<<gap))return false;
flag|=(1<<gap);
}
return true;
}
};