Ai
1 Star 2 Fork 5

LilithSangreal/LeetCode-Solutions

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
find-and-replace-pattern.cpp 932 Bytes
一键复制 编辑 原始数据 按行查看 历史
kamyu 提交于 2018-08-19 20:45 +08:00 . Update find-and-replace-pattern.cpp
// Time: O(n * l)
// Space: O(1)
class Solution {
public:
vector<string> findAndReplacePattern(vector<string>& words, string pattern) {
vector<string> result;
for (const auto& word: words) {
if (match(word, pattern)) {
result.emplace_back(word);
}
}
return result;
}
private:
bool match(const string& word, const string& pattern) {
unordered_map<char, char> lookup;
unordered_set<char> char_set;
for (int i = 0; i < word.length(); ++i) {
const auto& c = word[i], &p = pattern[i];
if (!lookup.count(c)) {
if (char_set.count(p)) {
return false;
}
char_set.emplace(p);
lookup[c] = p;
}
if (lookup[c] != p) {
return false;
}
}
return true;
}
};
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/LilithSangreal/LeetCode-Solutions.git
git@gitee.com:LilithSangreal/LeetCode-Solutions.git
LilithSangreal
LeetCode-Solutions
LeetCode-Solutions
master

搜索帮助