題目內容:
一開始給出了乙個由小寫字母組成的字串 s。我們規定每次移動中,選擇最左側的字母,將其從原位置移除,並加到字串的末尾。這樣的移動可以執行任意多次。返回我們移動之後可以擁有的最小字串(注:在python3中,字串的大小可用不等號比較)。
輸入格式:
s。s為僅含有小寫字母的字串,長度不超過100000。
輸出格式:
乙個與s等長的字串。
輸入樣例:
「cba」
輸出樣例:
acb
def
func
(s):
slength=
len(s)
minstring=s
for j in
range
(slength)
: firstchar=s[0]
s=s[1:
] s=s+firstchar
if sminstring=s
return minstring
ss=eval
(input()
)print
(func(ss)
)#輸入格式是帶引號的字串'string',input進來後成了"'string'"
#eval函式使得"'string'"變成了'string'
題目內容:
計算每個事件發生之時,往前算10000毫秒內有多少個事件發生,包含當事件;也即對於列表中的每個元素k,算出整個列表中有多少個元素介於k-10000和k(兩端均含)之間。
輸入格式:
乙個已排序列表mylist,所有元素為非負整數,記錄各個請求的發生時間,單位為毫秒。
輸出格式:
乙個與mylist等長的列表。
輸入樣例:
[0,10,100,1000,10000,20000,100000]
輸出樣例:
[1,2,3,4,5,2,1]
def
func
(mylist)
: printlist=
for atoken in mylist:
num=
0for btoken in mylist:
if btoken>atoken:
break
elif btoken>=atoken-
10000
: num+=
1return printlist
mylist =
eval
(input()
)print
(func(mylist)
)
題目內容:
實現乙個基數排序演算法,用於10進製的正整數從小到大的排序。
思路是保持11個佇列(佇列0、佇列1…佇列9、佇列main),開始,所有的數都在main佇列,沒有排序。
第一趟將所有的數根據其10進製個位(0-9),放入相應的佇列0-9,全放好後,按照fifo的順序,將每個佇列的數合併排到main佇列。
第二趟再從main佇列隊首取數,根據其十位的數值,放入相應佇列0~9,全放好後,仍然按照fifo的順序,將每個佇列的數合併排到main佇列。
第三趟放百位,再合併;第四趟放千位,再合併。
直到最多的位數放完,合併完,這樣main佇列裡就是排好序的數列了
==輸入格式: ==
乙個列表mylist,其中mylist包含一些需要排序的正整數,正整數互不相同且均不超過100000,且個數在1至1000之間。
輸出格式:
乙個與mylist等長的列表。
輸入樣例:
[8, 91, 34, 22, 65, 30, 4, 55, 18]
輸出樣例:
[4, 8, 18, 22, 30, 34, 55, 65, 91]
class
queue
:def
__init__
(self)
: self.items =
defisempty
(self)
:return self.items ==
defenqueue
(self, item)
: self.items.insert(
0, item)
defdequeue
(self)
:return self.items.pop(
)def
size
(self)
:return
len(self.items)
defradix_sort
(s):
# 請在此編寫你的**(可刪除pass語句)
#構建乙個以10個隊列為元素的列表
qlist=
[queue(
)for i in
range(10
)]#構建乙個main佇列,存放未經排序的初始數
mainqueue=queue(
)#把列表中的存放未經排序的初始數加入佇列中
for token in s:
mainqueue.enqueue(token)
#得到列表中的最大數的位數
nummaxchar=
str(
max(s)
) nummaxlen=
len(nummaxchar)
#得到所有數在第1~nummaxlen位的值,進行迴圈
for i in
range
(nummaxlen)
:#把i的值轉化為1~nummaxlen
i=i+
1#逐個把mainqueue中的值dequeue出來並進行相關操作
for k in
range
(len
(s))
:#dequeue乙個值
token=mainqueue.dequeue(
)#得到這個值的位數
tokenlen=
len(
str(token)
)#如果位數大於i,就可以得到真實的第i位的值
if tokenlen>=i:
places=
int(
str(token)
[-i]
)#位數小於i,預設第i位為0
else
: places=
0#把這個值放到對應的佇列中
qlist[places]
.enqueue(token)
#把0~9佇列中元素按順序放回mainqueue
for j in
range(10
):while
not qlist[j]
.isempty():
mainqueue.enqueue(qlist[j]
.dequeue())
#把mainqueue中的值按順序全部轉到列表中
result=
while
not mainqueue.isempty():
))#返回列表
return result
# **結束
mylist =
eval
(input()
)print
(radix_sort(mylist)
)
資料結構 最短路徑演算法總結(中國大學mooc)
無權圖單源最短路徑 bfs dist w s到w最短距離 path w s到w路上經過的某頂點 dist與path全部初始化為 1 void unweighted lgraph graph,int dist,int path vertex s 有權圖單源最短路徑dijkstra 找到未被收錄頂點中d...
畢博與中國大學mooc對比
本組選擇的測試產品a為畢博平台,產品b為中國大學慕課。專案進度表如下 我們小組劃分的功能模組如下 討論版的使用 提交作業與檢視作業 通知與搜尋 我負責的模組為討論版的使用 a.測試用例的設計思路 測試用例選擇的設計思路如下表的關鍵字列所示 請點這裡開啟匯出的測試用例 b.執行介面截圖 畢博對字型的測...
中國大學MOOC 學習筆記(三)
在學習了嵩天老師的 python網路爬蟲與資訊提取課程 之後,我自己嘗試按照老師的步驟做了乙個小demo。url 如下 import requests from bs4 import beautifulsoup 獲得response物件 defgeturltext url r requests.ge...