LeetCode 模拟面试 - 键盘行
程序员文章站
2022-04-27 08:11:18
...
来源:LeetCode模拟面试
思路:
用到了c++里面string的查找,string查找成功则返回一个小于string.npos的数,否则是大于等于。
用flag记录第一个字母所在的行。若后面的字母没有在s[flag]找到,直接break;
代码:
class Solution {
public:
vector<string> findWords(vector<string>& words) {
vector<string>r;
vector<string>s;
s.push_back("qwertyuiopQWERTYUIOP");
s.push_back("asdfghjklASDFGHJKL");
s.push_back("zxcvbnmZXCVBNM");
for(int i=0;i<words.size();i++){
int flag=0 ;
for(;flag<3;flag++){
if (s[flag].find(words[i][0]) < s[flag].npos){
break;
}
}
int f=1;
for(int j=1;j<words[i].size();j++){
if(s[flag].find(words[i][j]) >= s[flag].npos){
f=0;break;
}
}
if(f) r.push_back(words[i]);
}
return r;
}
};
上一篇: 国家发钱了!研究生补贴一览表!
下一篇: 使用VC++ 显示一首诗歌