1. 問題描述:
小藍正在學習一門神奇的語言,這門語言中的單詞都是由小寫英文本母組成,有些單詞很長,遠遠超過正常英文單詞的長度。 小藍學了很長時間也記不住一些單詞,他準備不再完全記憶這些單詞,而是根據單詞中哪個字母出現得最多來分辨單詞。 現在,請你幫助小藍,給了乙個單詞後,幫助他找到出現最多的字母和這個字母出現的次數。
【輸入格式】
輸入一行包含乙個單詞,單詞只由小寫英文本母組成。
【輸出格式】 輸出兩行,第一行包含乙個英文本母,表示單詞**現得最多的字母是哪個。 如果有多個字母出現的次數相等,輸出字典序最小的那個。 第二行包含乙個整數,表示出現得最多的那個字母在單詞**現的次數。
【樣例輸入】 lanqiao
【樣例輸出】a2
【樣例輸入】 longlonglongistoolong
【樣例輸出】o6
【評測用例規模與約定】 對於所有的評測用例,輸入的單詞長度不超過 1000。
2. 思路分析:
分析題目可以知道我們在遍歷字串的時候對出現的字元進行計數,對於python語言可以使用字典進行計數,可以使用collections.defaultdict(int)方法定義字典的值為int型別(collections模組中存在很多對於字典、雙端佇列、元組等非常有用的方法),這樣在計數的時候如果鍵不存在那麼會自動初始化為0,計數結束之後對字典按照值由大到小進行排序,最後輸出排序之後對應的第乙個鍵與值即可
3. **如下:
import collections
if __name__ == '__main__':
# 很明顯使用python中的字典對其進行計數即可, 使用defaultdict(int)方法當鍵不存在的時候那麼會自動初始化為0
dic = collections.defaultdict(int)
s = input()
for c in s:
dic[c] += 1
# 使用lambda表示式對字典進行排序, x[1]表示按照值進行排序, reverse表示從大到小排序
dic = sorted(dic.items(), key=lambda x: x[1], reverse=true)
print(dic[0][0])
print(dic[0][1])
第十一屆藍橋杯
問題描述 小藍要為一條街的住戶製作門牌號。這條街一共有 2020 位住戶,門牌號從 1 到 2020 編號。小藍製作門牌的方法是先製作 0 到 9 這幾個數字字元,最後根據需要將字 符貼上到門牌上,例如門牌 1017 需要依次貼上字元 1 0 1 7,即需要 1 個 字元 0,2 個字元 1,1 個...
第十一屆藍橋杯 矩陣
問題描述 把 1 2020 放在 2 1010 的矩陣裡。要求同一行中右邊的比左邊大,同一列中下邊的比上邊的大。一共有多少種方案?答案很大,你只需要給出方案數除以 2020 的餘數即可。答案提交 這是一道結果填空題,你只需要算出結果後提交即可。本題的結果為乙個整數,在提交答案時只填寫這個整數,填寫多...
第十一屆藍橋杯 走方格
問題描述 在平面上有一些二維的點陣。這些點的編號就像二維陣列的編號一樣。從上到下依次為第 1 至第 n 行,從左到右依次為第 1 至第 m 列,每乙個點可以用行號和列號來表示。現在有個人站在第 1 行第 1 列,要走到第 n 行第 m 列。只能向右或者向下走。注意,如果行號和列號都是偶數,不能走入這...