实现一个算法,确定一个字符串 s
的所有字符是否全都不同。
示例 1:
输入: s
= "leetcode"
输出: false
示例 2:
输入: s
= "abc"
输出: true
限制:
0 <= len(s) <= 100
s[i]
仅包含小写字母- 如果你不使用额外的数据结构,会很加分。
//位图
class Solution {
public:
bool isUnique(string astr) {
int ans=0;
if(astr.size()>26)
return false;
for(int i=0;i<astr.size();i++){
int k=astr[i]-'a';
if((ans>>k & 1)==1)
return false;
ans|=(1<<k);
}
return true;
}
};
//哈希表
class Solution {
public:
bool isUnique(string astr) {
int hash[26];
for(int i=0;i<astr.size();i++){
hash[astr[i]-'a']++;
if(hash[astr[i]-'a']==2)
return false;
}
return true;
}
};