【Leetcode205】Isomorphic Strings

class Solution {
public:
    bool isIsomorphic(string s, string t) {
        vector<bool> has_been_confirmed(s.length(), false);
        string different_chars = "";
        for(size_t index = 0; index < s.length(); ++index){
            if(has_been_confirmed[index])
                continue;
            else{
                vector<int> same_letter_indice;
                for(size_t i = index; i < s.length(); ++i){
                    if(s[i] == s[index]){
                        same_letter_indice.push_back(i);
                        has_been_confirmed[i] = true;
                    }
                }
                //验证对应位置字母是否也是一致的
                for(size_t index_in_candidate_list = 0; index_in_candidate_list < same_letter_indice.size(); ++index_in_candidate_list){
                    if(t[same_letter_indice[index_in_candidate_list]] != t[same_letter_indice[0]])
                        return false;
                }
                //t中的字母去重,即s中的不同字母不可以对应t中相同的字母
                for(const auto& c: different_chars){
                    if(t[same_letter_indice[0]] == c)
                        return false;
                }
                different_chars += t[same_letter_indice[0]];
//                std::cout << s << std::endl;
            }
        }
        return true;
    }

};
发布了112 篇原创文章 · 获赞 15 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/weixin_39458342/article/details/104726618