尋找小水王

2022-08-27 15:21:13 字數 1705 閱讀 9274

一、設計思路

輸入相關id資訊,從檔案匯入

建立字典,便利的同時,如果字典裡沒有這個數字,建立相應的key,同時賦值1

如果已存在,則對相應key值+1

最後對字典遍歷,用三個變數分別儲存最大次大次次大id的字串同時用三個變數儲存其key值,

達到不用排序陣列的目的,相對優化的尋找出最大的三個數

二、**

#

print "queen"

#writher gu peng

#edit date 20160518

f=file('

三個小水王.txt')

lines = f.readlines() #

取全部資料

f.close()

#str1='lao 王五 ijn 85 lao 王五 ijn 46 lao 王五 ijn ijn lao 王五 lao ijn ijn lao 王五 32 2 ijn'

#print"please input number array"

#str1=raw_input()

print

'開啟的檔案為:三個小水王.txt'#

str1=str1.split()

#print str1

array=

#print array

for i in

lines:

i=i.replace('

\n',''

)

if(array.has_key(i)):

array[i] = array[i]+1

else

: array[i] = 1

#print array

max_str='0'

max_amount=0

max_a=0

max_b=0

max_c=0

max_astr='

null

'max_bstr='

null

'max_cstr='

null

'for i in

array:

if(array[i]>=max_c):

if(array[i]<=max_b):

max_c=array[i]

max_cstr=i

elif(array[i]<=max_a):

max_cstr=max_bstr

max_bstr=i

max_c=max_b

max_b=array[i]

elif(array[i]>max_a):

max_cstr=max_bstr

max_bstr=max_astr

max_astr=i

max_c=max_b

max_b=max_a

max_a=array[i]

print

"三個小水王為:

"print

max_astr,max_bstr,max_cstr

#print max_a,max_b,max_c

三、截圖

尋找小水王

一 題目 三人行設計了乙個灌水論壇。資訊學院的學生都喜歡在上面交流灌水,傳說在論壇上有乙個 水王 他不但喜歡發帖,還會回覆其他id發的每個帖子。坊間風聞該 水王 發帖數 發現水王沒有了,但是統計結果表明,有三個發帖很多的id。據統計他們的發帖數量超過了1 4,你能從發帖列表中快速的找到他們嗎?二 i...

尋找發帖「水王」

分析與解法 首先想到的是乙個最直接的方法,我們可以對所有id進行排序。然後再掃瞄一遍排好序的id列表,統計各個id出現的次數。如果某個id出現的次數超過總數的一半,那麼就輸出這個id。這個演算法的時間複雜度為o n log2 n n 如果id列表已經是有序的,還需要掃瞄一遍整個列表來統計各個id出現...

尋找發帖水王

首先想到的是乙個最直接的方法,我們可以對所有id進行排序。然後再掃瞄一遍排好序的id列表,統計各個id出現的次數。如果某個id出現的次數超過總數的一半,那麼就輸出這個id。這個演算法的時間複雜度為o n log2 n n 如果id列表已經是有序的,還需要掃瞄一遍整個列表來統計各個id出現的次數嗎?如...