判斷字符是否唯一

題目描述:

實現一個算法,確定一個字符串 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;
 }
}
















 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章