2014年3月17日 星期一

[UVA]WERTYU

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

沒有留言:

張貼留言