明天就考试了,紧张啊~
回顾了一下之前写过的一些程序,把最基本的整理了出来,希望关键时候别再忘了呀!小伙伴们,明天加油!
目录
如何输入1个整数
如何输入两个整数,中间空格隔开
如何输入一行整数,空格隔开,储存至一列表
创建一列表(二维列表、全零列表)
进制转换
储存单位转换问题
有(无)向图 边数问题
二叉树 叶子数问题
Ascii值转换
BFS基本例题
DFS基本例题
BFS最短路径问题
n=int(input())
A,B=map(int,input().split(' '))
nums=[int(i) for i in input().split()]
n=10
a=[[] for i in range(n)] #二维列表
>>>a
[[], [], [], [], [], [], [], [], [], []]
c=[[]]*n
>>>c
[[], [], [], [], [], [], [], [], [], []] #二维列表
b=[0 for i in range(n)] #全零列表
>>>b
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
d=[0]*n
>>>d
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0] #全零列表
e=[]*n
>>>e
[]
>>>a=bin(5) #将5转化为二进制
'0b101'
>>> hex(17) #将十进制17转化为十六进制'0x11'
'0x11'
>>> bin(5) #将十进制5转化为十六进制'0b101'
'0b101'
>>> oct(9) #将十进制9转化为八进制'0o11'
'0o11'
>>> int('11',2) #将二进制'11'转化为十进制3
3
>>> int('18',16) #将八进制'18'转化为十进制24
24
>>> int('24',8) #将二进制'24'转化为十进制20
20
【问题描述】
在计算机存储中,12.5MB是多少字节?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。>>> 12.5*1024*1024
13107200
二进位bit
字节1Byte=8个二进位
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
【问题描述】
一个包含有2019个结点的有向图,最多包含多少条边?(不允许有重边)
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。>>> 2019*2018
4074342
有向图: n个节点,最多n(n-1)条边,最少 n 条边
无向图:n个节点,最多 n(n-1)/2 条边,最少n-1 条边(没有自环和重边)
拥有最多边(弧)的图叫完全图。
【问题描述】
一棵包含有2019个结点的二叉树,最多包含多少个叶结点?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。>>>(2019+1)/2
1010
AA=ord('a') # crd()函数就是用来返回单个字符的ascii值(0-255)
BB=chr(65) # chr()函数是输入一个整数[0,255]返回其对应的ascii符号
>>>print(AA)
97
>>>print(BB)
'A'
graph={'A':['B','C'],
'B':['A','C'],
'C':['B','A'],
'D':['B','C','E'],
'E':['D','C','B'],
'F':['D']}
def BFS(graph,s):
queue=[]
queue.append(s)
seen=[]
seen.append(s)
while len(queue)>0:
vertex=queue.pop(0)
nodes=graph[vertex]
for i in nodes:
if i not in seen:
queue.append(i)
seen.append(i)
print(vertex)
BFS(graph,'E')
>>>
E
D
C
B
A
graph={'A':['B','C'],
'B':['A','C','D'],
'C':['B','A','D','E'],
'D':['B','C','E','F'],
'E':['D','C'],
'F':['D']}
def DFS(graph,s):
stack=[]
stack.append(s)
seen=[]
seen.append(s)
while len(stack)>0:
vertex=stack.pop()
nodes=graph[vertex]
for i in nodes:
if i not in seen:
stack.append(i)
seen.append(i)
print(vertex)
DFS(graph,'E')
>>>
E
C
A
B
D
F
graph={'A':['B','C'],
'B':['A','C','D'],
'C':['B','A','D'],
'D':['B','C','E','F'],
'E':['D','C'],
'F':['D']}
def BFS(graph,s):
queue=[]
queue.append(s)
seen=[]
seen.append(s)
parent={s:None}
while len(queue)>0:
vertex=queue.pop(0)
nodes=graph[vertex]
for w in nodes:
if w not in seen:
queue.append(w)
seen.append(w)
parent[w]=vertex
#print(vertex)
return parent
parent=BFS(graph,'E') # E 终点
''' #输出从B到E的最短路径
v='B'
while v!=None:
print(v)
v=parent[v]
'''
v='B' # B 起点
way=[]
while v!=None:
way.append(v)
v=parent[v]
print(way,len(way))