实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = "leetcode"
输出: false
示例 2:
输入: s = "abc"
输出: true
限制:
0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分。
基本思路:首先想到的是哈希表,空间复杂度为O(1),但是用到了额外的数据结构;其次想到的是对原数组的排序,,但是时间复杂度为O(nlg(n));最后想到的是运用位运算,用一个整数的每一位表示一个字符
bool isUnique(string astr) {
int mark=0;
for(int i=0;i<astr.size();i++){
int move_bit=1<<(astr[i]-'a');
cout<<move_bit<<endl;
if(mark&move_bit)
return false;
mark|=move_bit;
}
return true;
}