開啟章節選單
10222 Decode the Mad man
題目連結
題目敘述
BUET 大學的一位老教授突然發瘋,開始說出一些奇怪的話語,沒有人能理解他的講課內容。最終,學校陷入了困境,無法讓這位教授繼續教書。 突然,一位學生創造了一個可以將教授說的話解碼的程式。從此之後,教授又能正常教學,大家都感到非常高興。 現在,你的任務就是寫一個相同的程式,來解碼這位瘋狂教授的語言。
輸入格式
輸入僅包含一筆測試資料,也就是編碼後的訊息。這筆資料包含一個或多個單字,字母皆為小寫。
輸出格式
根據輸入的測試資料,輸出解碼後的訊息。解碼方式是將每個字母或符號替換為鍵盤上它左邊第二個鍵的符號。空白和換行請直接輸出。
解題思路
建立一個代表鍵盤順序的字串,輸出未解碼字符前面的第二個字符。
程式碼
#include<bits/stdc++.h> using namespace std; int main() { string key = "`1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./"; string s; while(getline(cin, s)) { for (char c : s) { if (c == ' ') { cout << ' '; continue; } for (int i = 0; i < key.size(); i++) { if (key[i] == c) { cout << key[i-2]; break; } } } cout << "\n"; } }