https://leetcode.com/problems/word-pattern/description/
class Solution {
public:
bool wordPattern(string pattern, string str) {
map<char,string> map1;
map<string,char> map2;
int left=0,right=0;
for(int i = 0 ;i<pattern.size(); i++){
while(right<str.size()&&str[right]!=' ') right++;
if(right==left) return false;
string tmpStr = str.substr(left,right-left);
if(map1.find(pattern[i])!=map1.end()){
if(map1[pattern[i]]!=tmpStr) return false;
}else if(map2.find(tmpStr)!=map2.end()){
if(map2[tmpStr]!=pattern[i]) return false;
}else{
map1[pattern[i]] = tmpStr;
map2[tmpStr] = pattern[i];
}
left = ++right;
}
if(right<str.size()) return false;
return true;
}
};