9. Decode the Mad man (CPE10425, UVA10222) - CPE一顆星解答與說明
CPE一顆星49題解答 - pdf 電子檔,售價 199 元,
購買電子檔可將筆記與完整解答帶著走,
坐車、上課時皆可隨時複習,
不受網路或廣告影響,
若有需要請來信購買 greens2314@gmail.com
題目
- 寫程式來解碼(decode)瘋狂老教授的語言
輸入說明
- 有一筆測試資料,是編碼(encoded)過後的訊息
- 其中包含一個或多個單字
輸出說明
- 將解碼後的文字輸出
- 在標準鍵盤(standard keyboard)上,找到該測試資料的字母(letter)或標點符號(punctuation symbol),並取代成鍵盤上左邊第二個的字母
解題技巧
- 注意鍵盤上的英文與符號的按鍵位置與順序,尤其是最左邊往前推會讀取上一排的最後面
- 觀察「 ` 1」 符號左移後的變化,題目並沒有講
- 透過瘋狂程設的自訂測資 觀察 「 ` 1」符號解碼的結果,發現每次「 ` 」解碼結果都太一樣
解題過程
取得者輸入
- 使用 while 迴圈與 scanner.hasNextLine(),偵測使用者是否有輸入資料
- 當使用者輸入資料時
- 使用 scanner.nextLine() 取得整行句子
- 使用 String 類別本身提供的 toLowerCase() 方法,將句子轉成小寫
- 將鍵盤文字拉平,建立標準鍵盤的所有文字,從左上的「 ` 」符號開始,由左而右,由上而下,一直打到 「 / 」符號結束
- 遇到反斜線 「 \」 ,要打成 「 \\」
- 跳脫字元 Escape Sequence
- 使用字串時,有一些特殊字元無法表示,需使用「\」,來表達特殊字元
- 先找出句子中的字元,位於標準鍵盤字串中的哪個位置,使用 String 類別提供的 indexOf() 方法,會指出該字元的開始位置。如果沒有找到則返回 -1
- 有找到字元在標準鍵盤字串中的位置:使用 charAt() 方法,讀取「字元位置 - 2 」的字元
- 沒有找到字元在標準鍵盤字串中的位置:直接將字元印出,例如空白
留言
張貼留言