每日一算法(22)

每日算法篇-LeeCode篇

“下次再进入我的梦里,先征求一下我的意见可以吗,我不想弄湿枕头,在半夜。”——努力成为程序员的耿耿(2021/11/14)

题目

每日一算法(22)_第1张图片
题目来源于Leecode
对于题目的分析讲解写在代码的注释里了,好好学习!

LINES = [set("qwertyuiop"), set("asdfghjkl"), set("zxcvbnm")]

def findWords(words):
    ans = [word for word in words if any(set(word.lower()).issubset(LINE) for LINE in LINES)]
    return ans
        #返回列表中的元素 - 列表生成式,返回iterable中所有满足condition(为True)的所有元素
        #[x for x in iterable if condition]
        #判断条件:该元素的转换成小写形式,取集合,是三行中任意一行的子集
        #转成小写:         word.lower()   返回:小写字符串
        #取集合:           set(word.lower())      返回:集合
        #是子集:           set(word.lower()).issubset(x)   传入:集合           返回:Ture/False
        #是任意一行的子集:   any(iterable) 传入:T/F的可迭代对象 返回:存在Ture就返回True,否则返回False
List = ["Hello", "Alaska", "Dad", "Peace"]
print(findWords(List))

其实这道题用几个循环可以好好做出来,这个也属于简单题,就是说,跟大佬学习极简代码,Python比起别的语言来说最大的优点就是车轮子多,更容易站在巨人的肩膀上写语言。
我开始看看这个根本没看懂,还能这样写,看来要仔细学内置库,跟一些好用的库,之后有时间了,会给大家推一些好用的Python库。方便的使用我觉得是编程语言的区分。我爱Python。如果你也爱Python,可以关注我呀。

你可能感兴趣的:(数据结构,算法)