面试题 01.01. 判定字符是否唯一
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = "leetcode"
输出: false
示例 2:
输入: s = "abc"
输出: true
限制:
0 <= len(s) <= 100
如果你不使用额外的数据结构,会很加分。
思路
①用一个数组来代替哈希表
class Solution {
public:
bool m[128];
bool isUnique(string astr) {
fill(m, m+128,0); //初始化为0
for(int i=0;i<astr.length();i++){
if(m[astr[i]]) return false;
m[astr[i]]=true;
}
return true;
}
};
②减分的思路,使用unordered_map数据结构
class Solution {
public:
bool isUnique(string astr) {
unordered_map<char, int> m;
for(int i=0;i<astr.length();i++){
m[astr[i]]++;
if(m[astr[i]]==2) return false;
}
return true;
}
};