明天就考試了,緊張啊~
回顧了一下之前寫過的一些程式,把最基本的整理了出來,希望關鍵時候別再忘了呀!小伙伴們,明天加油!
目錄
如何輸入1個整數
如何輸入兩個整數,中間空格隔開
如何輸入一行整數,空格隔開,儲存至一串列
創建一串列(二維串列、全零串列)
進制轉換
儲存單位轉換問題
有(無)向圖 邊數問題
二叉樹 葉子數問題
Ascii值轉換
BFS基本例題
DFS基本例題
BFS最短路徑問題
如何輸入1個整數
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
儲存單位轉換問題
<p>【問題描述】<br>在計算機存盤中,12.5MB是多少位元組?<br>【答案提交】<br>這是一道結果填空的題,你只需要算出結果后提交即可,本題的結果為一個整數,在提交答案時只填寫這個整數,填寫多余的內容將無法得分,<br><br><br><br></p>
>>> 12.5*1024*1024
13107200
二進位bit
位元組1Byte=8個二進位
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
有(無)向圖 邊數問題
<p>【問題描述】<br>一個包含有2019個結點的有向圖,最多包含多少條邊?(不允許有重邊)<br>【答案提交】<br>這是一道結果填空的題,你只需要算出結果后提交即可,本題的結果為一個整數,在提交答案時只填寫這個整數,填寫多余的內容將無法得分,<br><br><br></p>
>>> 2019*2018
4074342
有向圖: n個節點,最多n(n-1)條邊,最少 n 條邊
無向圖:n個節點,最多 n(n-1)/2 條邊,最少n-1 條邊(沒有自環和重邊)
擁有最多邊(弧)的圖叫完全圖,
二叉樹 葉子數問題
【問題描述】
一棵包含有2019個結點的二叉樹,最多包含多少個葉結點?
【答案提交】
這是一道結果填空的題,你只需要算出結果后提交即可,本題的結果為一個整數,在提交答案時只填寫這個整數,填寫多余的內容將無法得分,>>>(2019+1)/2
1010
Ascii值轉換
AA=ord('a') # crd()函式就是用來回傳單個字符的ascii值(0-255)
BB=chr(65) # chr()函式是輸入一個整數[0,255]回傳其對應的ascii符號
>>>print(AA)
97
>>>print(BB)
'A'
BFS基本例題
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
DFS基本例題
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
BFS最短路徑問題
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))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/277661.html
標籤:其他
下一篇:計算機考研408復習復盤
