leetcode(面试题 01.01) 判定字符是否唯一

leetcode(面试题 01.01) 判定字符是否唯一_第1张图片

方法一:
两个for循环遍历字符串

class Solution {
public:
    bool isUnique(string astr) {
        int n=astr.size(); 
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                if(astr[j]==astr[i]){
                    return false;
                    break;
                }
            }
        }
        return true;    
    }
};

方法二:
排序:

class Solution {
public:
    bool isUnique(string astr) {
        if(astr.size()==0){
            return true;
        }
        sort(astr.begin(),astr.end());
        for(int i=1;i<astr.size();i++){
            if(astr[i]==astr[i-1]){
                return false;
            }     
        }
        return true;
    } 
};

方法三:
map:

class Solution {
public:
    bool isUnique(string astr) {
        map<int,bool> m;
        for(int i=0;i<astr.size();i++){
            if(m[astr[i]]==true) return false;
            m[astr[i]]=true;
        }
        return true;
    }
};

你可能感兴趣的:(leetcode)