题目:
题解:
思路:将 t 中的每一个字符 a 映射到 words 中对应位置的字符串 word,将 words 中的字符串 word 映射到 t 中的每一个字符 a,以此来确定唯一映射关系。
代码如下:
class Solution {
public:
// 双hash:s->word word->s
bool wordPattern(string s, string str) {
unordered_map r1;
unordered_map r2;
vector words=split(str);
if(s.size()!=words.size())return false;
int n=s.size();
for(int i=0;i
char a=s[i];string word=words[i];
if(r1.count(a)&&r1[a]!=word||r2.count(word)&&r2[word]!=a)return false;
r1[a]=word,r2[word]=a;
}
return true;
}
vector split(string str)
{
istringstream txt(str);
vector words;
string word;
// 根据第三个参数字符进行划分即可
while(getline(txt,word,' ')){
// move(a)将a的值移走
words.push_back(move(word));
}
return words;
}
};


![[字符串映射]leetcode290:单词规律(easy) [字符串映射]leetcode290:单词规律(easy)](http://www.mshxw.com/aiimages/31/975192.png)
