python常見面試題講解(三)明明的隨機數

題目描述

明明想在學校中請一些同窗一塊兒作一項問卷調查,爲了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤1000),對於其中重複的數字,只保留一個,把其他相同的數去掉,不一樣的數對應着不一樣的學生的學號。而後再把這些數從小到大排序,按照排好的順序去找同窗作調查。請你協助明明完成「去重」與「排序」的工做(同一個測試用例裏可能會有多組數據,但願你們能正確處理)。app

注:測試用例保證輸入參數的正確性,答題者無需驗證。測試用例不止一組。測試

樣例輸入解釋:
樣例有兩組測試
第一組是3個數字,分別是:2,2,1。
第二組是11個數字,分別是:10,20,40,32,67,40,20,89,300,400,15。

輸入描述:

輸入多行,先輸入隨機整數的個數,再輸入相應個數的整數spa

輸出描述:

返回多行,處理後的結果code

示例1

輸入

複製
3
2
2
1
11
10
20
40
32
67
40
20
89
300
400
15

輸出

複製
1
2
10
15
20
32
40
67
89
300
400

解題思路:
本道理的例子有一點歧義,主要是一次性輸出結果仍是分開輸出結果時,代碼是不同的,其實應該是兩組數字分開處理的,兩種解法,瞭解一下:
去重複能夠用list轉set的方法去重複,也能夠經過條件判斷
方法1:
 1 while True:
 2     try:
 3         a = input()
 4         a = int(a)
 5         d = []
 6         for i in range(a):
 7             c=input()
 8             c=int(c)
 9             d.append(c)
10         d=set(d)
11         d=list(d)
12         d.sort()
13         for i in d:
14             print(i)
15     except:
16         break

方法2:blog

 1 while True:
 2     try:
 3         a = input()
 4         a = int(a)
 5         d = []
 6         for i in range(a):
 7             c=input()
 8             c=int(c)
 9             if c not in d:
10                 d.append(c)
11         d.sort()
12         for i in d:
13             print(i)
14     except:
15         break
相關文章
相關標籤/搜索