Python 程式設計搞心態題目集錦(PTA平台)

2021-10-07 21:40:56 字數 3568 閱讀 7792

1.請編寫程式,對一段英文文字,統計其中所有不同單詞的個數,以及詞頻最大的前10%的單詞。

所謂「單詞」,是指由不超過80個單詞字元組成的連續字串,但長度超過15的單詞將只擷取保留前15個單詞字元。而合法的「單詞字元」為大小寫字母、數字和下劃線,其它字元均認為是單詞分隔符。

輸入格式:

輸入給出一段非空文字,最後以符號#結尾。輸入保證存在至少10個不同的單詞。

輸出格式:

在第一行中輸出文字中所有不同單詞的個數。注意「單詞」不區分英文大小寫,例如「pat」和「pat」被認為是同乙個單詞。

隨後按照詞頻遞減的順序,按照詞頻:單詞的格式輸出詞頻最大的前10%的單詞。若有並列,則按遞增字典序輸出。

輸入樣例:

this is a test.

the word "this"

is the word with the highest frequency.

longlonglonglongword should be cut off, so is considered as the same as longlonglonglonee. but this_8 is different than this,

and this,

and this...

#this line should be ignored.

輸出樣例:(注意:雖然單詞the也出現了4次,但因為我們只要輸出前10%(即23個單詞中的前2個)單詞,而按照字母序,the排第3位,所以不輸出。)

23

5:this4:

is

解題

import re

import collections

import sys

words =

"".join(

[line for line in sys.stdin]

)words = re.

compile

(r"\w+"

, re.i)

.findall(words.lower(

).split(

'#')[0

])words =

[each.strip(

)for each in words]

words =

list

(map

(lambda each: each[0:

15]iflen

(each)

>

15else each, words)

)counter = collections.counter(words)

rank =

sorted

(counter.items(

), key=

lambda each:

(-each[1]

, each[0]

), reverse=

false

)print

(len

(rank)

)for each in rank[0:

int(

0.1*

len(rank))]

:print

("{}:{}"

.format

(each[1]

, each[0]

))

2.利用集合分析活動投票情況。第一小隊有五名隊員,序號是1,2,3,4,5;第二小隊也有五名隊員,序號6,7,8,9,10。輸入乙個得票字串,求第二小隊沒有得票的隊員

輸入格式:

在一行中輸入得票的隊員的序列號,用逗號隔開。

輸出格式:

一行中輸出第二小隊沒有得票的隊員序號。

輸入樣例:

在這裡給出一組輸入。例如:

1,5

,9,3

,9,1

,1,7

,5,7

,7,3

,3,1

,5,7

,4,4

,5,4

,9,5

,10,9

輸出樣例:

在這裡給出相應的輸出。例如:

6

8

解題

lst =

list

(map

(int

,input()

.split(

",")))

d =flag=

0for x in

range(1

,11):

d[x]=0

for x in

range(0

,len

(lst)):

ifnot lst[x]

in d:

d[lst[x]]=

1else

: d[lst[x]

]= d[lst[x]]+

1for i in

range(6

,11):

if(d[i]==0

):if(flag==0)

:print

(i,end="")

flag=

1else

:print

(' '

.format

(i),end=

"")

3.本題要求編寫程式,輸出菲波那契(fibonacci)數列的前n項,每行輸出5個,題目保證輸出結果在長整型範圍內。fibonacci數列就是滿足任一項數字是前兩項的和(最開始兩項均定義為1)的數列,例如:1,1,2,3,5,8,13,…。

輸入格式:

輸入在一行中給出乙個整數n(1≤n≤46)。

輸出格式:

輸出前n個fibonacci數,每個數占11位,每行輸出5個。如果最後一行輸出的個數不到5個,也需要換行。

如果n小於1,則輸出"invalid."

輸入樣例1:

7
輸出樣例1:

112

35813

輸入樣例2:

0
輸出樣例2:

invalid.
解題

def

fib(n)

: a, b =0,

1for i in

range

(n +1)

: a, b = b, a + b

return a

n=int

(input()

)if(n>0)

:for i in

range(0

,n):

print(''

.format

(fib(i)

),end="")

if((i+1)%

5==0)

:print(""

)else

:print

("invalid."

)

完畢

程式設計珠璣題目集錦

輸入 乙個最多含有 n個不重複的正整數 也就是說可能含有少於 n個不重複正整數 的檔案,其中每個數都小於等於n 且n 10 7 輸出 得到按從小到大公升序排列的包含所有輸入的整數的列表。程式設計珠璣 中提出的問題,有三種解法 1 磁碟合併排序 先將所有資料分成多個小檔案,多個小檔案採用內部排序後,再...

程式設計珠璣題目集錦

1.10 n個整數 億級 的排序 輸入 乙個最多含有n個不重複的正整數 也就是說可能含有少於n個不重複正整數 的檔案,其中每個數都小於等於n,且n 10 7。輸出 得到按從小到大公升序排列的包含所有輸入的整數的列表。程式設計珠璣 中提出的問題,有三種解法 1 磁碟合併排序 先將所有資料分成多個小檔案...

python程式設計考試題目 python程式設計練習題目

github上面的乙個專案,分為level1,level2,level3 三個等級的難度。練習題1 隨機生成一列資料,畫出這些資料的分布 概率密度曲線,以及進行歸一化 標準化之後的分布 概率密度曲線。解答 歸一化 標準化 中心化 import numpy as np import matplotli...