牛客算法刷题注意事项

算法刷题笔记:

notes:

python 输入多行的方式

方式1:

import sys
lines=sys.stdin.readlines()

方式2:

while True:
	line=input()
	if line =="":
	 	break

数据类型转换的方式:

a=["1","2"]
b=map(int,a)
print(b)

二进制转10进制

ret=int('0100',2)

List相关:

二维数组转置

a=[[1,2,3],[4,5,6]]
aT=list(map(list,zip(*a)))#a的转置

INT类型数据

与或非异或

  • &:按位与
  • |:按位或
  • ~:取反
  • ^:异或
a=4
b=5
print(a&b)
print(a|b)
print(~a)
print(a^b)

list 操作

list.insert(idx,obj)

ret=[]
ret.insert(2,"123")

list.index(obj)

ret=[1,2,3,4,5]
idx=ret.index(2)
idx2=ret.index(0)#没有则抛出异常

list.pop取元素的位置

l=[1,2,3,4,5,6]
x=l.pop()#默认是取出最后一个元素
x=l.pop(0)# 取出第一个元素需要自己设置

list.sort 列表排序

l=[1,2,4,67,8,3]
l.sort()#不会占用新的空间
sorted(l)#会产生新的列表,占用新的空间
print(l)

enumerate函数

将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。

enumerate(迭代对象)

filter 过滤器

a=[1,2,-1,-3,-4]
filter(lambda: x:False if x<0 else True,a)

str相关

变小写字符

是否是数字、字母

s.isalnum()
s.lower()

字符串计数

s="12344"
s.count('4')

反转

a=[1,2,3,4]
b=reversed(a)
print(b)

产生1到n的数

nlist=range(1,n+1)

排列 组合

#排列
from itertools import permutations
permutations([1,2,3])
#组合
from itertools import combinations
combinations([1,2,3],2)

容器

计数器

from collections import Counter
l=[1,1,2,3,4]
dic=Counter(l)

字符和数字转换

chr(97)
ord('a')

集合

判断是否是子集

a=set(1)
b=set([1,2,3])
a.issubset(b)
#/ 在python2中是向下取整

你可能感兴趣的:(算法刷题,python)