广东省消防建设工程申报网站,wordpress弹窗下载插件,免费seo教程分享,怎么建单位的网站500. 键盘行
给你一个字符串数组 words #xff0c;只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。
美式键盘 中#xff1a;
第一行由字符 “qwertyuiop” 组成。 第二行由字符 “asdfghjkl” 组成。 第三行由字符 “zxcvbnm” 组成。 示例 1只返回可以使用在 美式键盘 同一行的字母打印出来的单词。键盘如下图所示。
美式键盘 中
第一行由字符 “qwertyuiop” 组成。 第二行由字符 “asdfghjkl” 组成。 第三行由字符 “zxcvbnm” 组成。 示例 1输入words [Hello,Alaska,Dad,Peace]
输出[Alaska,Dad]
示例 2输入words [omk]
输出[]
示例 3输入words [adsdf,sfd]
输出[adsdf,sfd]提示
1 words.length 201 words[i].length 100words[i] 由英文字母小写和大写字母组成
解题思路
使用3个set分别记录键盘每一行的所有字符对每个字符串判断是否字符串的每个字符都属于属于键盘的同一行
代码
class Solution {
public:vectorstring findWords(vectorstring words) {vectorstring res;unordered_setchar set1{q, w, e, r, t, y, u, i, o, p};unordered_setcharset2{a, s, d, f, g, h,j, k, l};unordered_setcharset3{z, x,c, v,b, n,m};for (string s:words) {int i 0;for (; i s.length(); i) {if (set1.find(tolower(s[i])) set1.end())break;}if (i s.length()) {res.push_back(s);continue;}i 0;for (; i s.length(); i) {if (set2.find(tolower(s[i])) set2.end())break;}if (i s.length()) {res.push_back(s);continue;}i 0;for (; i s.length(); i) {if (set3.find(tolower(s[i])) set3.end())break;}if (i s.length()) {res.push_back(s);continue;}}return res;}
};