UVA一星題筆記(5)10222 Decode The Mad Man

Sharon Peng
2 min readOct 5, 2019

--

這題其實不難,用一些小技巧,或是扣一些函式就可以得到了~

題目大意:

有人他想要把鍵盤按鍵都往左移,當我們想要印出H的話,我們不能直接打H而是要打K這個按鍵。

輸入:k[r dyt I[o

輸出:how are you

解題步驟:

  1. 首先先把鍵盤的順序輸入到陣列中(c++可以用把它視為string來存)
  2. 讀取資料
  3. 資料跟鍵盤做比對
  4. 輸出

程式碼參考(c++):

// 鍵盤輸入
string keyboard = "`1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./";
// 如果是C的話可以變成 char keyboard[] = {"..."};
//input
char str[10000];
char arr[10000];
fgets(str, 1000, stdin);int len = strlen(str);for(int i = 0; i < len - 1; ++i)
{
if(str[i] == ' ')
arr[i] = ' ';
else{
str[i] = tolower(str[i]); //把大寫變小寫
char k = str[i];
int pos = keyboard.find(k); //尋找輸入字串在鍵盤中的位置
arr[i] = keyboard[pos-2];
}
}

find函式的使用方法:find()函式

--

--

Sharon Peng
Sharon Peng

No responses yet