LeetCode290Word Pattern

来源:互联网 发布:网络爬虫 整个网站 编辑:程序博客网 时间:2024/05/16 03:41

用两个哈希表分别存放字符-单词,单词-字符。然后遍历判断是否出现冲突。

切割字符串可用strtok。

class Solution {public:    bool wordPattern(string pattern, string str) {        char cstr[str.size()+1];        strcpy(cstr,str.c_str());        map<char,string> mpa;        map<string,char> mpb;        char *p=strtok(cstr," ");        int i=0;        while(p!=NULL&&i<pattern.size())        {            map<char,string>::iterator ia=mpa.find(pattern[i]);            string sb(p);            map<string,char>::iterator ib=mpb.find(sb);            if(ia==mpa.end()&&ib==mpb.end())            {                mpa[pattern[i]]=sb;                mpb[sb]=pattern[i];            }            else if(ia!=mpa.end()&&ib!=mpb.end())            {                if(ia->second!=ib->first||ia->first!=ib->second)                    return false;            }            else                return false;            ++i;            p=strtok(NULL," ");        }        return p==NULL&&i==pattern.size();    }};


0 0
原创粉丝点击