UVA一星題筆記(5)10222 Decode The Mad Man
2 min readOct 5, 2019
這題其實不難,用一些小技巧,或是扣一些函式就可以得到了~
題目大意:
有人他想要把鍵盤按鍵都往左移,當我們想要印出H的話,我們不能直接打H而是要打K這個按鍵。
輸入:k[r dyt I[o
輸出:how are you
解題步驟:
- 首先先把鍵盤的順序輸入到陣列中(c++可以用把它視為string來存)
- 讀取資料
- 資料跟鍵盤做比對
- 輸出
程式碼參考(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()函式