求陣列中最大的最小數之差:
法一:
temp = [58, 65, 32, 100, 12, 20, 87, 3, 88法二:]temp.sort()
print(temp)
print(temp.pop() - temp[0
])#結果
[3, 12, 20, 32, 58, 65, 87, 88, 100
]97
temp = [58, 65, 32, 100, 12, 20, 87, 3, 88ps:實在想不出還有什麼更簡單的方法了!!!]print(max(temp) -min(temp))
#結果:
97
第二題:
#字元,數字,是否是數字的最高位
char_item =[
['w', -1, true], ['
d', -1, true], ['
o', -1, false],
['t', -1, false], ['
g', -1, true], ['
l', -1, false],
['e', -1, false], ['
c', -1, false], ['
m', -1, false],]#
value,used
char_value =[
[0, false], [1, false], [2, false], [3, false], [4, false],
[5, false], [6, false], [7, false], [8, false], [9, false]]#
判斷數值是否有效
defisvaluevaild(ciitem, cvitem):
if cvitem[0] ==0:
ifuse_my_isvalue:
if ciitem[0] == 'w'
or ciitem[0] == 'd'
or ciitem[0] == 'g'
:
return
false
else
:
return
not ciitem[2]
return
not cvitem[1]
#獲取對應的整數
defmakeintegervalue(ci, string):
strlen = string.__len__
() res =0
for i in range(0, strlen, 1):
for item in
ci:
if string[i] ==item[0]:
res *= 10res += item[1]
return
res#
判斷數值是否正確的**函式
defoncharlistready(ci):
minuend = "
wwwdot
"subtrahead = "
"diff = "
dotcom
"m =makeintegervalue(ci, minuend)
s =makeintegervalue(ci, subtrahead)
d =makeintegervalue(ci, diff)
if (m - s) ==d:
print(str(m) + "
-" + str(s) + "
=" +str(d))
defsearchresult(ci, cv, index, callback):
max_char_count = ci.__len__
() max_number_count = cv.__len__
()
if index ==max_char_count:
callback(ci)
return
for i in range(0, max_number_count, 1):
ifisvaluevaild(ci[index], cv[i]):
cv[i][1] = true #
設定使用標誌
ci[index][1] =cv[i][0]
searchresult(ci, cv, index + 1, callback)
cv[i][1] = false #
清除使用標誌
if__name__ == '
__main__':
print("
有乙個由字元組成的等式。wwwdot-google=dotcom,每個字元代表乙個0~9之間的數字,""
wwwdot、google和dotcom都是合法的數字,不能以0開頭。""
請找出一組字元和數字的對應關係,使它們互相替換,並且替換後的數字能夠滿足等式。")
print("
解答:"
) start =time.clock()
searchresult(char_item, char_value, 0, oncharlistready)
end =time.clock()
print("
使用了: %f s
" % (end - start))
輸出結果:
有乙個由字元組成的等式。wwwdot-google=dotcom,每個字元代表乙個0~9之間的數字,wwwdot、google和dotcom都是合法的數字,不能以0開頭。請找出一組字元和數字的對應關係,使它們互相替換,並且替換後的數字能夠滿足等式。解答:777589-188103=589486
777589-188106=589483使用了: 48.331373 s
毛老師演算法分析課作業快速排序法
演算法描述 1 先從數列中取出乙個數作為基準數。2 分割槽過程,將比這個數大的數全放到它的右邊,小於或等於它的數全放到它的左邊。3 再對左右區間重複第二步,直到各區間只有乙個數。coding utf 8 time 18 9 18 上午11 00 author guo zhengbing email ...
演算法課作業 回溯法
7 2 子集和問題 20分 7 3 馬周遊問題 60分 返回主目錄 圖k 著色問題是乙個著名的np完全問題。給定無向圖g v,e 和正整數k,問可否用k種顏色為v中的每個結點分配一種顏色,使得不會有兩個相鄰結點具有同一種顏色?該問題的乙個具體例項可能會有多個解 乙個解就是一種合法的著色方案 要求計算...
演算法課作業 歸納技術
2 2 前t個組合結果 20分 2 3 排列還原 25分 2 4 行列式的計算 20分 返回主目錄 請編寫程式輸出前n個正整數的全排列 n 10 並通過9個測試用例 即n從1到9 觀察n逐步增大時程式的執行時間。輸入格式 輸入給出正整數n 10 輸出格式 輸出1到n的全排列。每種排列佔一行,數字間無...