1204. 键盘的一行

1204. 键盘的一行

中文English

给定一个单词列表,返回可以在美国键盘的一行上使用字母表键入的单词,如下图所示。

样例

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

注意事项

您可以多次使用键盘中的一个字符。
您可以假设输入字符串仅包含字母表的字母。

输入测试数据 (每行一个参数)如何理解测试数据?
class Solution:
    """
    @param words: a list of strings
    @return: return a list of strings
    """
    '''
    大致思路:
    1.初始化res = [],给出键盘的三个字符串,循环word,进行判断首位在哪个字符串,然后根据这个字符串进行循环,如果后面的字符都可以找到的话,则append到res里面。
    '''

    def findWords(self,words):
        str1 = 'qwertyuiop' 
        str2 = 'asdfghjkl'
        str3 = 'zxcvbnm'
        str_w = ''
        
        res = []
        for word in words:
            if word[0].lower() in str1:
                str_w  = str1

            elif word[0].lower() in str2:
                str_w = str2
            else:
                str_w = str3
            if self.isRight(word,str_w) == True:
                res.append(word) 
        return res

    ##单个word进行匹配
    def isRight(self,word,str_w):
        for i in word:
            if i.lower() not in str_w:
                return False
        return True

 

 
posted @ 2020-04-18 18:28  风不再来  阅读(183)  评论(0编辑  收藏  举报