1 class Solution
2 {
3 public:
4 int getWordEnd;
5 string getWord(string str)
6 {
7 string tmp;
8 int i;
9 for(i = getWordEnd;str[i] != ' '&& str[i]!='\0';i ++)
10 {
11 tmp += str[i];
12 }
13 getWordEnd = i+1;
14 return tmp;
15 }
16 bool wordPattern(string pattern, string str)
17 {
18 map<char,string> m;
19 map<string,char> m2;
20 getWordEnd = 0;
21 for(int i = 0;i < pattern.size();i ++)
22 {
23 string word = getWord(str);
24 if(!m.count(pattern[i]))
25 {
26 m[pattern[i]] = word;
27 if(!m2.count(word))
28 {
29 m2[word] = pattern[i];
30 }
31 else
32 {
33 return false;
34 }
35 }
36 else if(m[pattern[i]] != word)
37 {
38 cout << i <<endl;
39 return false;
40 }
41 }
42
43 if(getWordEnd-1 != str.size())
44 return false;
45 return true;
46 }
47 };