藍橋杯每日一題(30)單詞分析(python)

2021-10-25 15:22:31 字數 1710 閱讀 1202

試題 g: 單詞分析

時間限制: 1.0s 記憶體限制: 512.0mb 本題總分:20 分

小藍正在學習一門神奇的語言,

這門語言中的單詞都是由小寫英文本母組成,

有些單詞很長,遠遠超過正常英文單詞的長度。

小藍學了很長時間也記不住一些單詞,

他準備不再完全記憶這些單詞,而是根據單詞中哪個字母出現得最多來分辨單詞。

現在,請你幫助小藍,給了乙個單詞後,

幫助他找到出現最多的字母和這個字母出現的次數。

輸入一行包含乙個單詞,單詞只由小寫英文本母組成。

輸出兩行,第一行包含乙個英文本母,表示單詞**現得最多的字母是哪個。

如果有多個字母出現的次數相等,輸出字典序最小的那個。

第二行包含乙個整數,表示出現得最多的那個字母在單詞**現的次數。

lanqiao

a

2

longlonglongistoolong

o

6

對於所有的評測用例,輸入的單詞長度不超過 1000。

藍橋杯演算法題, 輸入格式可參考藍橋杯通用輸入模板

首先將輸入字串

用a記錄word中的字母出現的次數

之後不斷遍歷word中的字母

判斷word中的字母出現的次數cou

將a與cou進行比較選擇較大的值

這裡選用if語句

為什麼選擇if判斷語句而不是max函式

同時將較大的值對應的字母放置在data中

最後第一行列印字母

第二行列印字母出現的次數

word =

str(

input()

)a =

0data =

for i in word:

cou = word.count(i)

if cou > a:

data =

[i] a = cou

print

(data[0]

)print

(a)

第二種方法同樣是運用count函式

但進行了優化

我們可以對a到z中每個字母在data中尋找出現的次數

之後與方法一中的思路一樣

最後第一行列印字母

第二行列印字母出現的次數

只要輸入的字元的長度大於26

第二種方法效率顯然就會更高

word =

str(

input()

)data =

'abcdefghijklmnopqrstuvwxyz'

out =

res =

0for i in data:

a = word.count(i)

if a > res:

out =

[i] res = a

print

(out[0]

)print

(res)

藍橋杯 每日一題 Sine之舞

最近fj為他的奶牛們開設了數學分析課,fj知道若要學好這門課,必須有乙個好的三角函式基本功。所以他準備和奶牛們做乙個 sine之舞 的遊戲,寓教於樂,提高奶牛們的計算能力。不妨設an sin 1 sin 2 sin 3 sin 4 sin n sn a1 n a2 n 1 a3 2 an 1 fj想...

每日一題 單詞拼寫

給你乙份 詞彙表 字串陣列 words 和一張 字母表 字串 chars。假如你可以用 chars 中的 字母 字元 拼寫出 words 中的某個 單詞 字串 那麼我們就認為你掌握了這個單詞。注意 每次拼寫時,chars 中的每個字母都只能用一次。返回詞彙表 words 中你掌握的所有單詞的 長度之...

每日一題 拼寫單詞

給你乙份 詞彙表 字串陣列 words 和一張 字母表 字串 chars。假如你可以用 chars 中的 字母 字元 拼寫出 words 中的某個 單詞 字串 那麼我們就認為你掌握了這個單詞。注意 每次拼寫 指拼寫詞彙表中的乙個單詞 時,chars 中的每個字母都只能用一次。返回詞彙表 words ...