CPE 10425、UVA 10222程式解題。
解題觀念:
這題老實說我剛開始完全不懂......因為我想像力沒有那麼豐富聯想力也沒有那麼強= =
原來只是要你輸出你所按下的字母,再往左邊數兩個的那個字母而已......
(嗯?我怎麼知道的? 好吧~是學長告訴我的....)
所以這題你必須要建立鍵盤對照表,利用字串去建立。
而且輸出字母皆為小寫,所以要注意大小寫轉換。
再來就是非鍵盤對應符號(例如空白鍵)不需做改變,保持原樣輸出即可。
解題步驟:
首先建立鍵盤對照表,請參照上面程式碼。
再來宣告一個整數變數,等等要搜尋字串位置時會用到。
使用者輸入字串,轉為小寫(.toLawerCase()語法);再來就是搜尋字串位置(.indexOf()語法);
搜尋哪個字串的位置??-->抓取使用者所輸入的字串的字元(.charAt()語法)
用if判斷式,判斷ans的字元位置是否有在鍵盤對照表裡,
如果有就將位置減2(向左一兩格)之後印出,如果沒有則保持原樣印出。
EX:
k[r dyt I[o ((為了方便,我只取一個字母來解釋
ans = keyboard.indexOf(str.charAt(0)) -->ans = keyboard.indexOf(k) -->ans = 33 (鍵盤表第33個字)
進入if判斷式,ans不等於-1,符合,將ans-2,印出鍵盤表第31個字母-->h
((後面字母以此類推。
BY 小K
沒有留言:
張貼留言