题目描述:
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = "leetcode"
输出: false
示例 2:
输入: s = "abc"
输出: true
方法一:暴力搜索法:时间复杂度O(n2)
class Solution {
public boolean isUnique(String astr) {
if(astr == null || astr.length() <= 1) return true;
for(int i=0; i< astr.length()-1; i++){
for(int j=i+1;j<astr.length();j++){
if((astr.charAt(i)+"").equals(astr.charAt(j)+"")){
return false;
}
}
}
return true;
}
}
方法二:使用字符串自带的方法
class Solution{
public boolean isUnique(String astr){
if(astr == null || astr.length() <=1 ) return true;
for(int i=0;i<astr.length();i++){
if(astr.substring(i+1,astr.length()).contains(astr.charAt(i)+"")) return false;
}
return true;
}
}
方法三:哈希
class Solution{
public boolean isUnique(String astr){
if(astr == null || astr.length()-1 < 1) return true;
HashMap<String,Integer> map =new HashMap<>();
for(int i=0;i<astr.length();i++){
if(map.containsKey(astr.charAt(i)+"")){
return false;
}
map.put(astr.charAt(i)+"",i);
}
return true;
}
}