LC吐血整理-Math篇


github-Leecode_summary

7.整数反转

总的来说,难度不是很大,所以敲代码的时间需要缩减一下呀!!
今天学到的 2 Tips

# Python中的 do...while
>>> while True:
>>>   if(Flase):
>>>      break
# if...else放一行
>>> c = a if a>b else b
# 字符串反转方法
>>> x = 'amilyxy'  x[::-1]/list.reverse()/还有很多种 自行百度
'yxylima'

165. 比较版本号

还是对list、str内置函数不熟悉,导致一直出错,百度耗费时间
今日份的2Tips-1
list.append(): 追加单个元素到List的尾部,只接受一个参数,参数可以是任何数据类型,被追加的元素在List中保持着原结构类型。
list.extend(): 将一个列表中每个元素分别添加到另一个列表中,只接受一个参数(参数必须可迭代)。
list.insert(): 将一个元素插入到列表中,para1: 索引点 para2: 是插入的元素。
list1+list2: 需要创建新的列表,消耗内存大

# list 添加元素 extend/append
>>> a = ['1', '2', '4', '5']
>>> a.append(['0']*3) / a.extend(['0']*3) /a.extend(['0']*-3)    #你应该看出这个区别了吧 == 详情见后
['1', '2', '4', '5', ['0', '0', '0']] / ['1', '2', '4', '5', '0', '0', '0'] /  ['1', '2', '4', '5']
>>> ['0']*3 - ['0', '0', '0']  /  '0'*3 - '000'

今日份的2Tips-2
  前面14题做最长公共前缀的时候已介绍过zip的用法,但是zip返回list对象长度和最短列表长度相同,也就是截断的效果,看评论做法,选用itertools.zip_longest()可起到补长作用:

>>> a = ['1', '2', '3']    b = ['1', '2']  
>>> b = itertools.zip_longest(list1, list2)    # 需要 import itertools
>>> print(list(b))
[('1', '1'), ('2', '1'), ('3', None)]
>>> b = itertools.zip_longest(list1, list2, fillvalue='0')    # 这个就真的是跟我的解题思路一毛一样 只要一行 我枯了
>>> print(list(b))
[('1', '1'), ('2', '1'), ('3', '0')]

66.加一

这个题比前面的几个稍微简单,尤其是知道list()int()用的非常顺手~
题解里面有一行出结果的,也不错,我喜欢
但是考虑到代码的美观易懂,还是不建议了
写代码和做题不一样,写代码尽量考虑可维护性可扩展性
今天是没有Tips的一天

8.字符串转换整数

刷了五十多个题终于..有看到正则的方法了,是时候学习一波了,第一次写正则还是大二的时候写js(已经忘了,这个题思路倒是挺简单,就是需要考虑到各种case..

  • 今日份Tips-1: python正则学习
    还是直接贴链接吧:
    廖雪峰-正则表达式
    菜鸟教程-正则表达式

  • 今日份Tips-2: python中 * 和 ** 使用方法
    乍一想,好像*zipped用过,当时还以为啥zip()专属呢(好傻,python中 * 和 ** 有两种用途:计算 or 元素打包和解包 。
    还是贴链接吧...重在学习过程,而不是复制过程
    Python 中星号作用:解包&打散

  • 今日份Tips-3: eval()
      eval() 是python中的一个内置函数,函数用来执行一个字符串表达式,并返回表达式的值。
      利用eval()能够以Python表达式的方式解析并执行字符串,将返回结果输出,并轻松实现将str转换为list tuple dict(字符串格式需要严格对应)。

>>> a = "15*2+8"
>>> eval(a)
38
>>> a = "[[1,2], [3, 4], [5, 6]]"
>>> eval(a)
[[1, 2], [3, 4], [5, 6]]
>>> eval("'a'*2")
'aa'

258. 各位相加

简单题也不简单鸭!%9的方法很神奇,大家是怎么想出来的啊 ==

67. 二进制求和

我发自内心的疑惑,为什么看过的知识总是会忘记,比如 'a'*-2='' ,又比如 zip(a, b),我太难了,

233.数字中1的个数

感觉是纯数学题目了,我是真的晕,天生与数学有仇吧,建议有时间看一下数字中x的个数(github有代码)


2019.09.25
2019.11.13/14 明天就要开始真正的算法之路了,tree篇,加油鸭!

你可能感兴趣的:(LC吐血整理-Math篇)