首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

HDU 2140 Michael Scofield's Letter (字符映射替換)

     編輯:關於C++

問題

輸入多行小寫字母字符串 (長度 ≤ 10000),按規則替換輸出:
b→空格, q→逗號, t→感嘆號, m↔l, i↔e, c↔a。
實際為將 "michael" 映射為 "leahcim" (逆序) 並擴展標點。

映射表

原字符目標
b' '
q','
t'!'
ml
lm
ie
ei
ca
ac

代碼 (C++)

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    unordered_map mp = {
        {'b',' '}, {'q',','}, {'t','!'},
        {'m','l'}, {'l','m'},
        {'i','e'}, {'e','i'},
        {'c','a'}, {'a','c'}
    };
    string s;
    while (cin >> s) {
        for (char &ch : s) {
            auto it = mp.find(ch);
            if (it != mp.end()) ch = it->second;
        }
        cout << s << '\n';
    }
    return 0;
}

樣例

輸入:pmicsibforgevibliqbscrct ebmovibyout
輸出:please forgive me, sara! i love you!

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved