时间轴
时间轴
2025-11-13
init
哈希表
题目:
用哈希表表示映射关系,如果一个字符和一个字符串没有映射过或被映射过,就映射它们。如果一个字符被映射过了,那么当前字符串一定得是被映射的字符串。
123456789101112131415161718192021222324252627282930313233343536373839 | using std::string;using std::unordered_map;using std::vector;using std::stringstream;class Solution { public: bool wordPattern(string pattern, string s) { int i, n = pattern.size(); vector<string> s_vec; stringstream ss(s); string curr; while (ss >> curr) s_vec.push_back(curr); if (s_vec.size() != n) return false; unordered_map<char, string> p2smap; unordered_map<string, char> s2pmap; for (i = 0; i < n; i++) { if (!p2smap.count(pattern[i]) && !s2pmap.count(s_vec[i])) { p2smap[pattern[i]] = s_vec[i]; s2pmap[s_vec[i]] = pattern[i]; } else { if (p2smap[pattern[i]] != s_vec[i] || s2pmap[s_vec[i]] != pattern[i]) return false; } } return true; }}; |
