leetcode踩坑

    最近开始刷Leecode,使用Python语言,踩了很多坑,在此记录。

1. 一个萝卜一个坑

1.1. int函数

int()函数用于将一个字符串或数字转换为整型。
int(x,base=10):x—字符串或数字,base—进制数,默认十进制。 如果显示的指定base参数,x必须为str。

1
2
3
4
int(3) = 3
int(3.6) = 3
int('12',16) = 18
int('11',2) = 3#将字符串解析为2进制

1.2. bin函数

bin()返回一个整数int的二进制表示,返回类型str
bin(x)

1
2
3
#返回的结果前2个字符是固定的'0b',后面才是真正的值。
bin(10) = '0b1010'
bin(20) = '0b10100'

1.3. zip函数

zip()接受一系列(多个,个数不固定)可迭代对象(最常用list,tuple)作为参数,将多个对象中,对应位置的元素打包成一个个tuple,然后返回由这些tuple组成的list。若传入参数中长度不一样,则返回liist的长度和参数中最短的相同。

1
2
3
4
5
6
7
8
9
10
11
12
x = ['wang','bei']
y = ['lei','xiao','kang']
list(zip(x,y))
输出:[('wang','lei'),('bei','xiao')]

x = 'wang'
y = 'lei'
list(zip(x,y))
输出:[('w','l'),('a','e'),('n','i')]

#假设zip传入的参数是x,y,zip依次将(x[0],y[0]),(x[1],y[1])..
#以可迭代对象返回,可强制转换为list或tuple

zip()传入的参数是zip()的返回值类型,从类型中每一个tuple中,取出第0个元素组成一个list,再取出第1个元素组成一个list,即zip(\)返回值是一个大list,里面有2个tuple

1
2
3
4
5
6
a = [1,2,3,4,5]
b = ['a','b','c']
zipped = list(zip(a,b))
#zipped = [(1,'a'),(2,'b'),(3,'c')]
c = list(zip(*zipped))
#c = [(1,2,3),('a','b','c')]

1.4. 二分法讲解

参考资料

正无穷和负无穷

在比较大小时,通常先将结果初始化为inf和-inf,使用下面的语句

1
2
res = float("inf")
res = float("-inf")

split()和split(‘ ‘)的区别

  • split()会自动删除头和尾的空格,并且对于中间连续的空格当做一个空格
  • split(' ')不会删除头和尾的空格,对于中间连续的空格,每个空格都会分割出来
1
2
3
4
5
6
#ab中有1个空格,bc中有2个空格,cd中有3个空格
a = ' a b c d '
a.split()
#会输出['a','b','c','d']
a.split(' ')
#会输出[' ','a','b','','c','','','d','']
打赏
0%