打表查询即可:
class Solution {
public:
vector<string> findWords(vector<string>& words)
{
unordered_map<char,int> map=
{
{'q',1},{'w',1},{'e',1},{'r',1},{'y',1},{'u',1},{'i',1},{'o',1},{'p',1},{'t',1},
{'a',2},{'s',2},{'d',2},{'f',2},{'g',2},{'h',2},{'j',2},{'k',2},{'l',2},
{'z',3},{'x',3},{'c',3},{'v',3},{'b',3},{'n',3},{'m',3}
};
vector<string> ans;
for(int i=0;i<words.size();i++)
{
int flag=map[tolower(words[i][0])];
for(int j=1;j<words[i].length();j++)
{
if(map[tolower(words[i][j])]!=flag)
{
flag=-1;
break;
}
}
if(flag>0)
ans.push_back(words[i]);
}
return ans;
}
};
键盘分区单词过滤器
本文介绍了一种通过检查单词是否完全由键盘上的同一排字符组成的算法。使用C++实现了一个解决方案,该方案创建了一个unordered_map来存储每个字母及其对应的键盘排数,并遍历输入的单词列表,检查每个单词是否符合标准。
246

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



