题解:
- 将每一行的字符串映射为字符与所在键盘行的键值对
- 遍历每个单词
- 获取每个单词的首字母所在行,然后判断单词后面所有的字符是否都在同一行
- 如果所有字符都在同一行,将该单词添加到结果列表中,最后返回结果列表
class solution:
def findwords(self, words: list[str]) -> list[str]:
keyboard = {'q':1, 'w':1, 'e':1, 'r':1, 't':1, 'y':1, 'u':1, 'i':1, 'o':1, 'p':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}
res = []
for word in words:
if len(word) == 0:
continue
row = keyboard[word[0].lower()]
if all(keyboard[c.lower()] == row for c in word):
res.append(word)
return res
发表评论