
这题用到了一一对应映射关系的双射问题,也就是要验证a–>dog和dog–>a的关系都是唯一的!
代码:
class Solution {
public:
bool wordPattern(string& pattern, string& s) {
istringstream is(s);
string tmp;
vector<string> strs;
while(is>>tmp)
strs.push_back(tmp);
if(strs.size()!=pattern.size())
return false;
unordered_map<char,string> m1;
unordered_map<string,char> m2;
for(int i=0;i<pattern.size();i++){
if(m1[pattern[i]]!="" && m1[pattern[i]]!=strs[i])
return false;
m1[pattern[i]] = strs[i];
if(m2[strs[i]]!=NULL&&m2[strs[i]]!=pattern[i])
return false;
m2[strs[i]] = pattern[i];
}
return true;
}
};
该博客探讨了一个编程问题,涉及检查给定的字符串和模式之间是否存在一一对应的一对一映射关系。通过使用C++代码实现,检查字符串中的单词是否与模式中的字符保持唯一映射,从而确保双射的正确性。
806

被折叠的 条评论
为什么被折叠?



