Leetcode刷题笔记python---键盘行
键盘行
题目
给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。
示例1:
输入: [“Hello”, “Alaska”, “Dad”, “Peace”]
输出: [“Alaska”, “Dad”]
注意:
1.你可以重复使用键盘上同一字符。
2.你可以假设输入的字符串将只包含字母。
解答
代码:
将题目分解为两步,
- 判断一个字符串在不在另一个字符串内
- 再遍历
代码:
class Solution:
def findWords(self, words):
"""
:type words: List[str]
:rtype: List[str]
"""
#构建一个函数判断一个字符串x是不是全在y中
def allin(x,y):
n=0
for i in x.lower():
if i in y.lower():
n+=1
if n==len(x):
return True
else:
return False
keyboard=['qwertyuiop','asdfghjkl','zxcvbnm']
num=[]
for i in words:
for j in keyboard:
if allin(i,j):
num.append(words.index(i))
word=[]
for i in num:
word.append(words[i])
return word