###### tags: `leetcode`
# Question No.290:
### Description:
Given a pattern and a string s, find if s follows the same pattern.
Here follow means a full match, such that there is a bijection between a letter in pattern and a non-empty word in s.
### Solution:
Use Map to store pattern and item and compare
### AC code:
```cpp=
#include <sstream>
class Solution {
public:
bool wordPattern(string pattern, string s) {
map<char, string>::iterator iter;
vector<string> item;
map<char, string> patern;
istringstream iss(s);
string substr;
int len = pattern.length();
cout<<len<<endl;
int i = 0;
while(getline(iss, substr, ' ') || i < len){
iter = patern.find(pattern[i]);
//if found
if(iter!=patern.end()){
//if pattern didn't match item
if(iter->second.compare(substr)!=0)
return false;
}
//if not found
else{
//if not found but item is the same as previous, return false
for(int j = 0 ; j < item.size() ; j++){
if(substr.compare(item[j]) == 0)
return false;
}
patern.insert(pair<char, string>(pattern[i], substr));
item.push_back(substr);
}
i++;
}
if(i!=len)
return false;
return true;
}
};
```