CPE10412、UVA 10082 程式解題。
解題觀念 :
這題和我之前寫的 UVA 10222 Decode the Mad Man 非常類似,而且還比他簡單易點。
簡單來說,就是要你將所有輸入的字母,全部往左移一格(對照鍵盤),在印出。
比如你輸入F,對照鍵盤,F左邊一格的字母為D,則要輸出D。
題目中有特別註明說,不會有QAZ這三個字母;且輸入的測資全為大寫,所以不需做大小寫轉換。
要注意的是,字串中會有空白,要記得處理空白的部分。
解題步驟 :
先用字串 key ,建立鍵盤對照表。
因為字串中有空白測資,所以讀取時必須用nextLine()讀取完整字串。
宣告整數 index,用來存放字母在鍵盤表的位置。
用for迴圈去抓取每一個字母,尋找他們在鍵盤表中的哪一個位置 (indexof()) ,並存放到index。
如果有找到,則將當前所在位置往左移一格 (index - 1) ,並印出。
如果沒有找到,則為空白字元,直接印出即可。
EX :
O S, GOMR YPFSU/
進入for迴圈,index = 8。
進入if判斷,index = 8 != -1,符合,印出鍵盤表第7個字元'I';
在進入for迴圈,index = -1。
進入if判斷,index = -1,不符合,直接印出空白字元。
(後略,以此類推)
整個字串跑完後,再換行。
By 小K
沒有留言:
張貼留言