41. Tell me the frequencies! (CPE10410, UVA10062) - CPE一顆星解答與說明

      👉  CPE 一顆星選集列表(49題) 題目說明與解答

CPE一顆星49題解答 - pdf 電子檔,售價 199 元,

購買電子檔可將筆記與完整解答帶著走,

坐車、上課時皆可隨時複習,

不受網路或廣告影響,

若有需要請來信購買 greens2314@gmail.com

題目


  • 統計字元出現的次數

輸入說明


  • 每一行為一筆測試資料


輸出說明

  • 根據每筆測試資料印出
    • 字元的 ASCII Code
    • 字元出現次數
  • 根據出現次數排序,由小至大
    • 若有相同的次數,先印 ASCII Code 較大者




解題技巧


解題過程

取得輸入

  • 使用 while 偵測是否有整行輸入
    • 取得字串
    • 取得字串中的每一個字元
    • 使用 for 迴圈並呼叫 String 類別提供的 charAt() 方法 


統計字元出現次數,將字元當陣列索引使用

  • 宣告陣列,用來儲存每個字元的出現次數,陣列長度為 129
    • 題目會使用到 ascii code 128,若要將 128 當作索引使用,則陣列長度要是 129
  • 將字元當成整數的 ascii code 使用,可直接存取對應的陣列索引位置
    •  char 可以隱含式轉換為 int 使用
    • 以 "AAABBCC" 為例



排序

  • 出現次數由小至大排序
    • 使用 for 迴圈尋找特定次數,逐一檢查是否有 ascii code 的出現次數符合目前尋找的次數
    • 尋找的初始次數為 1 次(0 次不須處理),逐次遞增,出現次數只會小於或等於字串長度
      • 例如字串:"AAAAA",字串長度是 5,A 的出現次數最多就是 5 次
  • 若有字元的出現次數一樣,由大至小印出 ascii code
    • 使用 for 迴圈,初始的 ascii code 從陣列長度 - 1 開始,逐次遞減






印出

  • 判斷特定字元的出現次數是否等於目前的尋找次數
    • 若相等,印出字元的 ascii code 與 出現次數




處理換行

  • 此題輸出須特別處理換行
  • 宣告布林值,判斷是否要印出換行,第一筆測試資料不用印,但第二筆開始都要多印換行





CPE一顆星49題解答 - pdf 電子檔,售價 199 元,

購買電子檔可將筆記與完整解答帶著走,

坐車、上課時皆可隨時複習,

不受網路或廣告影響,

若有需要請來信購買 greens2314@gmail.com

留言

這個網誌中的熱門文章

CPE 一顆星選集題目說明與解答 - Java 筆記與心得分享

Visual Studio 自動排版格式化程式碼

1. Vito's family (CPE10406, UVA10041) - CPE一顆星解答與說明