文章

10

粉丝

143

获赞

43

访问

57.8k

头像
字符串模拟,使用map来存储映射关系
P1272 上海交通大学机试题
发布于2022年2月23日 17:31
阅读数 5.5k

decode规则:将键盘上的字符均向左平移一个,想到可以使用map来存储char-char键值对。` Q A  Z 这四个键盘最左侧字符不会出现在输入中。

处理:用字符串result按顺序存储键盘上所有字符,遍历result并为map赋值

mymap[result[i]]=result[i-1];

细节1:因为`QAZ不会出现在输入中,所以这里map的赋值不用考虑边界情况。

细节2:空格的映射仍为空格。

  1. #include <iostream>
  2. #include <string>
  3. #include <map>
  4. using namespace std;
  5. string str,temp;
  6. string result="`1234567890-=QWERTYUIOP[]\ASDFGHJKL;'ZXCVBNM,./";
  7. map<char,char> mymap;
  8. int main()
  9. {
  10. for(int i=1;i<result.size();i++)
  11. mymap[result[i]]=result[i-1];
  12. char ch=' ';
  13. mymap[ch]=ch;//空格的映射仍为空格
  14. while(getline(cin,str))
  15. {
  16. temp=str;
  17. for(int i=0;i<str.size();i++)
  18. {
  19. temp[i]=mymap[str[i]];
  20. }
  21. cout<<temp<<endl;
  22. }
  23. return 0;
  24. }

 

map库函数的学习使用:https://blog.csdn.net/shuzfan/article/details/53115922

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发