290. Word Pattern LeetCode

来源:互联网 发布:蚁群算法工具箱 编辑:程序博客网 时间:2024/06/10 03:23

题意:给出两个字符串,问第一个字符串的字母能否通过映射单词得到第二个字符串中。
题解:跟205. Isomorphic Strings是一个套路,只不过205是字母和字母的映射,这里是字母和单词的映射,同样的我们开两个hash表就可以搞了。

class Solution {public:    bool wordPattern(string pattern, string str) {        map<char,string> m;        map<string,char> mm;        m.clear();        mm.clear();        int i = 0,n = pattern.length();        stringstream s(str);        while(getline(s,str,' '))        {            if(i >= n) return false;            if(m.find(pattern[i]) == m.end() && mm.find(str) == mm.end())             {                m[pattern[i]] = str;                mm[str] = pattern[i];                i++;            }            else if(m.find(pattern[i]) != m.end() && mm.find(str) != mm.end() && m[pattern[i]] == str && mm[str] == pattern[i]) i++;            else return false;        }        if(i != n) return false;        else return true;    }};
0 0