290. 单词规律

发布时间:2024年01月11日
class Solution {
public:
    bool wordPattern(string pattern, string s) {
        unordered_map<char,string>mpp;   //pattern中的字母对应s的字符串
        unordered_set<string> value;
        vector<string> strs;
        stringstream ss;
        string t;
        ss<<s;
        while(ss>>t){
            strs.emplace_back(t);
        }
        if(strs.size()!=pattern.length())
            return false;
        for(int i=0;i<strs.size();++i){
            string str = strs[i];
            char key = pattern[i];
            cout<<str<<" "<<pattern[i]<<endl;
            if(!mpp.count(key)){        //key没出现过 
                if(value.count(str))    //value也没出现过 
                    return false;
                mpp[key] = str;         //绑定映射
                value.insert(str);      //更新value
            }else{
                if(mpp[key]!=str)       //key出现过,对应字符串不对
                    return false;
            }
        }
        return true;
    }
};
文章来源:https://blog.csdn.net/m0_48711099/article/details/135527739
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。