500. 键盘行
给定一个单词列表,只返回可以使用在键盘同一行的字母打印出来的单词。键盘如下图所示。
示例:
输入: ["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