• 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
  • 相关阅读:
    联考20200604 T2 宝石
    联考20200604 T1 旅游
    联考20200603 T2 排列
    [HAOI2017]八纵八横
    联考20200603 T1 解码
    [POI2011]KON-Conspiracy
    CF917D Stranger Trees
    CF1278F Cards
    CF809E Surprise me!
    NOI2016 循环之美
  • 原文地址:https://www.cnblogs.com/xxxsans/p/13795219.html
Copyright © 2020-2023  润新知