leetcode与python进阶学习总结

转自:leetcode与python进阶学习总结

  1. l1是一个链表型,val是其属性,以下句子意义为如果l1不为空则取l1.val否则取0,节省代码空间,干净利落
x= l1.val if l1 else 0
  1. 三目运算符 条件为真时的结果 if 条件 else 条件为假时的结果
x = x if (x>y) else y  # 取x,y中较大的数并赋给x
  1. 被惊艳到了:判断是否为回文。不知道如何表达,虽然算法的时间空间复杂度差不多,但是这个太简美了
def isPalindrome(self, x: 'int') -> 'bool':
    return str(x) == str(x)[::-1]
  1. 列表解析,列表生成式,还可带条件过滤
list=[-1, 0, 1,1]
st = [x+2 for x in list] # st变成[1, 2, 3, 3]的列表
st = [x+2 for x in list if list[x]>0] # st变成[3, 3]的列表

你可能感兴趣的:(leetcode,技巧)