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

示例:
输入: ["Hello", "Alaska", "Dad", "Peace"]
输出: ["Alaska", "Dad"]
注意:
你可以重复使用键盘上同一字符。
你可以假设输入的字符串将只包含字母。
题目的理解:
判断每一个单词是否在同一行中,一共三行,每次判断前将单词转化为小写。如果单词都在同一行,那么就保存这个单词。
python实现
class Solution:
def findWords(self, words: List[str]) -> List[str]:
line_one = 'qwertyuiop'
line_two = 'asdfghjkl'
line_three = 'zxcvbnm'
result = list()
for word in words:
line = None
word_small = word.lower()
allin = True
for character in word_small:
if line is None:
if line_one.count(character) > 0:
line = line_one
elif line_two.count(character) > 0:
line = line_two
else:
line = line_three
if line.count(character) <= 0:
allin = False
break
if allin:
result.append(word)
return result
提交

// END 有一种牵挂叫作带入梦想
网友评论