代码:
class Solution {
public:
bool wordPattern(string pattern, string s) {
unordered_map<string,char> map1;
unordered_map<char,string> map2;
int m = s.length(), i = 0;
for(char p : pattern){
if(i >= m){//查看pattern是否大于s的长度,大于就输出false
return false;
}
int j = i;
while(j < m && s[j] != ' ') j++;
const string &temp = s.substr(i,j-i);
if(map1.count(temp) && map2[p] != temp){
return false;
}
if(map2.count(p) && map1[temp] != p){
return false;
}
map1[temp] = p;
map2[p] = temp;
i = j+1;
}
return i >= m;
}
};