#18836: 用python寫的一些小想法


python_trainee (python_trainee)

學校 : 不指定學校
編號 : 100376
來源 : [118.160.119.85]
最後登入時間 :
2019-08-11 05:05:15
b130. NOIP2006 1.明明的随机数 -- NOIP2006普及組 | From: [118.168.60.121] | 發表日期 : 2019-08-07 21:24

雖然標題是隨機數,但是卻跟隨機一點關係都沒有唷~

這一題主要練習的項目大概就是這三個:

    1)分割字串

    2)串列去除重複

    3)串列排列

 

 

本題"讀取"的方式我是使用try...except...的方式來編寫:

架構大概是這樣

try:

    <主要程式區>

except EOFError:

    pass

 

 

分割字串的部分,python有split函數可以使用,可以直接利用' '分割並存成list型態

split的寫法架構是這樣:

input_string = input_string(' ', -1)     利用' '作為分割條件,-1代表要全部分割(預設值)

例:

a = "a b c d"

b = a.split(' ', 1)

則b會得到的是 ['a', 'b c d']

c = a.split(' ', 2)

則c會得到的是 ['a', 'b', 'c d']

 

 

去除重複的方法可以利用set(),複習一下list(), tuple(), set(), dict()

list() : 串列 : 有順序、可改變內容、以中括號標示

tuple() : 序對 : 有順序、不可改變、小括號標示

set() : 集合 : 沒有順序、可改變內容、不可重複、大括號標示

dict() : 字典 : 沒有順序、可改變內容、不可重複、大括號標示、 {key, value}

 

 

所以此時我們可以利用set()的不重複性來做,要注意的是前面用split分割的串列內容型態不是數字,所以要記得做型態轉換

no_same_number = list(set(input_list))

因為集合沒有順序,之後要做排序有點麻煩,所以我又把他再次轉成串列比較方便

 

 

最後排序直接使用sort()就可以大功告成了~

要研究排序法的可以去挑戰其他題目,這題就先不贅述了...

 

 

Thank you for watching. 

Alex.

 
ZeroJudge Forum