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


題目描述

明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了N個1到1000之間的隨機整數(N≤1000),對於其中重復的數字,只保留一個,把其余相同的數去掉,不同的數對應着不同的學生的學號。然后再把這些數從小到大排序,按照排好的順序去找同學做調查。請你協助明明完成“去重”與“排序”的工作(同一個測試用例里可能會有多組數據,希望大家能正確處理)。

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

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

輸入描述:

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

輸出描述:

返回多行,處理后的結果

示例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:

 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

 




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM