文章

10

粉丝

143

获赞

3

访问

55.5k

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

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

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发