跳到主要内容

890.查找和替换模式

链接:890.查找和替换模式
难度:Medium
标签:数组、哈希表、字符串
简介:返回 words 中与给定模式匹配的单词列表。

题解 1 - cpp

  • 编辑时间:2022-06-12
  • 执行用时:4ms
  • 内存消耗:7.6MB
  • 编程语言:cpp
  • 解法介绍:遍历比较。
class Solution {
public:
int n;
vector<string> findAndReplacePattern(vector<string> &words,
string pattern) {
vector<string> ans;
n = pattern.size();
for (auto &word : words) {
if (check(pattern, word)) ans.push_back(word);
}
return ans;
}
bool check(string &pattern, string &word) {
char list[26] = {0};
bool check[26] = {0};
for (int i = 0; i < n; i++) {
char wc = word[i], pc = pattern[i];
if (list[pc - 'a'] && list[pc - 'a'] != wc) return false;
if (list[pc - 'a'] == '\0' && check[wc - 'a']) return false;
check[wc - 'a'] = true;
list[pc - 'a'] = wc;
}
return true;
}
};