【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;
    }

};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值