1 题目描述
给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。
American keyboard
示例:
输入: [“Hello”, “Alaska”, “Dad”, “Peace”]
输出: [“Alaska”, “Dad”]
注意:
你可以重复使用键盘上同一字符。
你可以假设输入的字符串将只包含字母。
2 解题思路
- 方法一:求交集
- 方法二:set比较
3 解决代码
- 方法一:求交集
class Solution(object):
def findWords(self, words):
"""
:type words: List[str]
:rtype: List[str]
"""
l1 = set('qwertyuiopQWERTYUIOP')
l2 = set('asdfghjklASDFGHJKL')
l3 = set('zxcvbnmZXCVBNM')
# l1,l2,l3 = set(l1), set(l2), set(l3)
final = []
for i in words:
x = i.lower()
s = set(x)
if s&l1 == s or s&l2 ==s or s&l3 ==s:
final.append(i)
return final
- 方法二:set比较
class Solution(object):
def findWords(self, words):
set1 = set('qwertyuiop')
set2 = set('asdfghjkl')
set3 = set('zxcvbnm')
res = []
for i in words:
x = i.lower()
setx = set(x)
if setx<=set1 or setx<=set2 or setx<=set3:
res.append(i)
return res