#18835: 【python】NOIP2006 1.明明的随机数


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:15

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

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

    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']
 
 
 
去除重複的方法可以利用set(),複習一下list(), tuple(), set(), dict()
list() : 串列 : 有順序、可改變內容、以中括號標示
tuple() : 序對 : 有順序、不可改變、小括號標示
set() : 集合 : 沒有順序、可改變內容、不可重複、大括號標示
dict() : 字典 : 沒有順序、可改變內容、不可重複、大括號標示、 {key, value}
 
所以此時我們可以利用set()的不重複性來做,要注意的是前面用split分割的串列內容型態不是數字,所以要記得做型態轉換
no_same_number = list(set(input_list))
因為集合沒有順序,之後要做排序有點麻煩,所以我又把他再次轉成串列比較方便
 
 
 
ZeroJudge Forum