#32. 校長何意味?

簡單陣列字串

時間限制 1000 ms ・ 記憶體限制 256 MB

題目描述

在大里高中,每年仲凱校長都宣布一句「精神口號」,例如去年是 PASSION,今年是 BELIEVE。學務處長年蒐集歷屆的精神口號紀錄,一共蒐集了 N 屆。

學務處發現,有些口號裡同一個字母出現不只一次,例如 PASSION 裡 S 出現兩次、BELIEVE 裡 E 出現三次,覺得這種「重複用字」的口號特別有記憶點,於是想統計一下歷屆的狀況。

每一屆的紀錄包含:

  • 該屆的屆別 year(正整數,代表第幾屆,屆別彼此不重複)
  • 該屆的精神口號 slogan(僅由大寫英文字母 A 到 Z 組成)

只要口號中,有任何一個字母出現次數達到 2 次以上(含 2 次),該屆就視為「重複用字口號」。

請寫一個程式,讀入全部 N 屆的紀錄後,輸出:

  1. 「重複用字口號」的總屆數。
  2. 每一屆「重複用字口號」的屆別,以及該屆口號中「出現次數最多的字母」與其出現次數,依屆別由小到大輸出。若同一屆有多個字母的出現次數並列最高,取字母順序(A 到 Z)最小的那一個。

輸入格式

輸入共 N+1 行。

  • 第 1 行:一個正整數 N,代表蒐集的屆數。
  • 第 2 行到第 N+1 行:第 i+1 行有兩個以恰一個空白分隔的資料,year_islogan_i,代表第 i 屆的屆別與該屆精神口號。

限制

  • 1 ≤ N ≤ 1000
  • 1 ≤ year_i ≤ 10000,且所有 year_i 皆不相同
  • slogan_i 只包含大寫英文字母 A 到 Z,長度介於 1 到 20 之間

輸出格式

  • 第 1 行:一個整數,代表「重複用字口號」的總屆數(範圍為 0 到 N)。

接下來,對於每一屆「重複用字口號」,依屆別由小到大各輸出一行,格式為:

屆別 字母 次數

三個欄位之間各以一個空白分隔。

若「重複用字口號」總屆數為 0,則第 1 行輸出 0 後,不再輸出任何後續內容。

範例一

範例輸入:

5
1 PASSION
2 BELIEVE
3 DREAM
4 TOGETHER
5 SUCCESS

範例輸出:

4
1 S 2
2 E 3
4 E 2
5 S 3

5 屆口號中,PASSION(S 出現 2 次)、BELIEVE(E 出現 3 次)、TOGETHER(T 與 E 皆出現 2 次,取字母順序較小的 E)、SUCCESS(S 出現 3 次)皆屬於重複用字口號,共 4 屆;DREAM 每個字母都只出現 1 次,不屬於重複用字口號。依屆別由小到大輸出,即為第 1、2、4、5 屆。

範例二

範例輸入:

3
6 DREAM
7 UNITY
8 FOCUS

範例輸出:

0

三屆口號都沒有任何字母重複出現,因此只輸出一行 0。

配分方式

子題配分比對方式
子題 140只看輸出第一行是否正確
子題 260完整輸出需完全正確

範例測資

範例輸入 1

5
1 PASSION
2 BELIEVE
3 DREAM
4 TOGETHER
5 SUCCESS

範例輸出 1

4
1 S 2
2 E 3
4 E 2
5 S 3

範例輸入 2

3
6 DREAM
7 UNITY
8 FOCUS

範例輸出 2

0
請先登入後再提交程式碼

討論與題解

載入討論區…