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

示例:

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

注意:

你可以重复使用键盘上同一字符。
你可以假设输入的字符串将只包含字母。

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/keyboard-row
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

哈希

class Solution:
    def findWords(self, words: List[str]) -> List[str]:
        key={}
        for i in 'qwertyuiop':
            key[i]=1
            key[i.upper()]=1
        for i in 'asdfghjkl':
            key[i]=2
            key[i.upper()]=2
        for i in 'zxcvbnm':
            key[i]=3
            key[i.upper()]=3
        res=[]
        for i in words:
            flag=1
            for j in i:
                if key[j]!=key[i[0]]:
                    flag=0
                    break
            if flag==1:
                res.append(i)
        return res
        

 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
02-14 02:16