Custom Sort String (Leetcode 791)

A 집 문제.
해법 1 직접 sort,
class Solution {
public:
    string customSortString(string S, string T) {
        if(S.empty()){
            return T;
        }
        
        auto comp = [&S](const char c1, const char c2){
            return S.find(c1) < S.find(c2);
        };
        
        sort(T.begin(), T.end(), comp);
        return T;
    }
};

해법 2: string T 의 모든 char 의 개 수 를 기록 한 다음 loop S, S 순서대로 recover
class Solution { public: string customSortString(string S, string T) { unordered_map mp; for(char c : T){ mp[c]++; }
    string ret = "";
    
    for(char c : S){
        if(mp.count(c)){
            int cnt = mp[c];
            ret += string(cnt, c);
            mp.erase(c);
        }
        
    }
    
    for(auto it : mp){
        char c = it.first; int cnt = it.second;
        ret += string(cnt, c);
    }
    
    return ret;
}

};

좋은 웹페이지 즐겨찾기