41 UVA10062 Tell me the frequencies!
內容
給你一列文字,請你找出各字元出現的次數。
輸入說明
每筆測試資料一列。每列最大長度為1000。
輸出說明
對每一列輸入,請輸出各字元的ASCII值及其出現的次數。請根據出現的次數由小到大輸出。如果有2個以上的字元有相同的次數,則ASCII值較大的先輸出。 測試資料間請空一列,參考Sample Output
範例輸入 #1
AAABBC
122333
範例輸出 #1
67 1
66 2
65 3
# 初始化計數器 c 為 0
c = 0
# 進入無窮迴圈
while True:
try:
# 讀取輸入字串
n = input()
except EOFError:
# 若遇到EOFError(通常表示檔案結尾),跳出迴圈
break
# 建立一個長度為257的列表,初始化所有元素為0,用來計算每個字元的出現次數
a = [0 for i in range(257)]
# 遍歷輸入字串,將每個字元的出現次數記錄在列表 a 中
for i in n:
a[ord(i)] += 1
# 如果是第一次迴圈之後的輸入,印出空行以區隔前後輸入
if c > 0:
print()
# 更新計數器
c += 1
# 遍歷字元出現次數列表 a
for i in range(1, len(n)+1):
# 逆序遍歷,找到第一個出現次數為 i 的字元
for j in range(256, 0, -1):
if a[j] == i:
# 印出字元的Unicode碼點和出現次數
print(j, i)