题目描述
小可非常粗心,打字的时候将手放到了比正确位置偏右的一个位置,因此,Q打成了W,E打成了R,H打成了J等等。键盘如下所示
现在给你若干行小可打字的结果,请你还原成正确的文本。
输入描述
若干行字符,每行字符串中可能包含大写字母、字符、数字、空格、或者上面键盘中的标点符号。
带单词标签(比如�������Control、�����Enter、���Tab等)的按键不会出现。同时,最左侧的`QAZ这四种字符也不会出现。
保证不会出现空行,并且字符的总量不超过105105。
输出描述
如题,将输入的所有文本还原成正确的文本。空格保持不变。保证所有的字母都是大写字母。
样例输入
O S, GOMR YPFSU/
[[-=,.M
样例输出
I AM FINE TODAY.
PP0-M,N
代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
string s;
char a[10000]={"`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./"};
while(getline(cin,s)){
int len=s.size(),f;
for(int i=0;i<len;i++){
if(s[i]==' ') continue;
for(int j=0;;j++){
if(s[i]==a[j]){
f=j;
break;
}
}
s[i]=a[f-1];
}
cout<<s<<endl;
}
return 0;
}