牛客:HJ21 简单密码[华为机考][哈希]

学习要点

  1. unordered_map的使用

题目链接

简单密码_牛客题霸_牛客网

题目描述

解法:哈希表

cpp 复制代码
#include <bits/stdc++.h>
#include <cctype>
#include <iostream>
#include <unordered_map>

using namespace std;

int main() {
    string line;
    getline(cin,line);
    unordered_map<char,int> a_map;
    unordered_map<char, char> A_map;
    a_map['a'] = 2; a_map['b'] = 2; a_map['c'] = 2; a_map['d'] = 3; a_map['e'] = 3; a_map['f'] = 3;
    a_map['g'] = 4; a_map['h'] = 4; a_map['i'] = 4; a_map['j'] = 5; a_map['k'] = 5; a_map['l'] = 5;
    a_map['m'] = 6; a_map['n'] = 6; a_map['o'] = 6; 
    a_map['p'] = 7; a_map['q'] = 7; a_map['r'] = 7; a_map['s'] = 7;
    a_map['t'] = 8; a_map['u'] = 8; a_map['v'] = 8;
    a_map['w'] = 9; a_map['x'] = 9; a_map['y'] = 9; a_map['z'] = 9;
    for(char ch = 'A';ch<'Z';ch++)
    {
        A_map[ch] = tolower(ch) +1;
    }
    A_map['Z'] = 'a';
    for(auto &ch:line)
    {
        if(islower(ch))
        {
            cout << a_map[ch];
        }
        else if(isupper(ch))
        {
            cout << A_map[ch];
        }
        else
        {
            cout << ch;
        }
    }
}
// 64 位输出请用 printf("%lld")