文章
10
粉丝
143
获赞
3
访问
55.5k
decode规则:将键盘上的字符均向左平移一个,想到可以使用map来存储char-char键值对。` Q A Z 这四个键盘最左侧字符不会出现在输入中。
处理:用字符串result按顺序存储键盘上所有字符,遍历result并为map赋值
mymap[result[i]]=result[i-1];
细节1:因为`QAZ不会出现在输入中,所以这里map的赋值不用考虑边界情况。
细节2:空格的映射仍为空格。
#include <iostream>
#include <string>
#include <map>
using namespace std;
string str,temp;
string result="`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./";
map<char,char> mymap;
int main()
{
for(int i=1;i<result.size();i++)
mymap[result[i]]=result[i-1];
char ch=' ';
mymap[ch]=ch;//空格的映射仍为空格
while(getline(cin,str))
{
temp=str;
for(int i=0;i<str.size();i++)
{
temp[i]=mymap[str[i]];
}
cout<<temp<<endl;
}
return 0;
}
map库函数的学习使用:https://blog.csdn.net/shuzfan/article/details/53115922
登录后发布评论
暂无评论,来抢沙发