500. Keyboard Row

来源:互联网 发布:网络整天不稳定 编辑:程序博客网 时间:2024/06/05 14:12

Given a List of words, return the words that can be typed using letters of alphabet on only one row's of American keyboard like the image below.


American keyboard


Example 1:

Input: ["Hello", "Alaska", "Dad", "Peace"]Output: ["Alaska", "Dad"]

Note:

  1. You may use one character in the keyboard more than once.
  2. You may assume the input string will only contain letters of alphabet.


解题思路:这题涉及到集合运算,运用python是最方便的。

class Solution(object):    def findWords(self, words):        """        :type words: List[str]        :rtype: List[str]        """        rs = map(set, ['qwertyuiop','asdfghjkl','zxcvbnm'])        ans = []        for word in words:            wset = set(word.lower())            if any(wset <= rset for rset in rs):                ans.append(word)        return ans