实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = "leetcode"
输出: false
示例 2:
输入: s = "abc"
输出: true
限制:
0 <= len(s) <= 100
如果不使用额外的数据结构,会很加分
来源:力扣(LeetCode)
链接
解题思路
因为看到数据量很小,就直接打算每遇到一个字符就扫一遍其后的字符比较一下了,时间复杂度为n*n
class Solution {
public boolean isUnique(String astr) {
//n*n
for (int i=0;i<astr.length();i++){
for(int index=i+1;index<astr.length();index++){
if(astr.charAt(index)==astr.charAt(i))
return false;
}
}
return true;
}
}
后来看了一下题解,可以使用hashset去重,只要比较一下去重后的字符串和原字符串LEN就可以了,简单明了
class Solution {
public boolean isUnique(String astr) {
Set set = new HashSet(); //并不明白为什么是Set引用
for (int i = 0; i <astr.length() ; i++) {
set.add(astr.charAt(i)); //注意set获取字符的方法
}
return set.size() == astr.length();
}
}