力扣(LeetCode)500. 键盘行

时间:2023-03-09 08:00:32
力扣(LeetCode)500. 键盘行

给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。

力扣(LeetCode)500. 键盘行

示例:

输入: ["Hello", "Alaska", "Dad", "Peace"]

输出: ["Alaska", "Dad"]

注意:

你可以重复使用键盘上同一字符。

你可以假设输入的字符串将只包含字母。

思路 获取每个单词的每个字母,进行所在行的判定,如果该单词所有字母都在同一行,则添加,否则不添加

java版

class Solution {
public String[] findWords(String[] words) {
List<String> list = new LinkedList<>();
String q = "qwertyuiopQWERTYUIOP";
String a = "asdfghjklASDFGHJKL";
String z = "zxcvbnmZXCVBNM";
int i,j;
for(i=0;i<words.length;i++) {
int len = words[i].length();
int one=0,two=0,three=0;//单词字母所在的行数
for(j=0;j<len;j++) {
String s = words[i].substring(j,j+1);
if(q.contains(s)) {
one++;
}else if(a.contains(s)) {
two++;
}else if(z.contains(s)) {
three++;
}
}
// 如果单词每个字母都在同一行,则添加进list
if(one == len || two == len || three == len) {
list.add(words[i]);
}
} return list.toArray(new String[list.size()]); }
}

运行结果

力扣(LeetCode)500. 键盘行