分析
用string
和map
可以简化代码
大小写转换可以异或空格符
代码
#include<iostream>
#include<string>
#include<map>
const int MAXN = 1000 + 6;
inline bool isLower(char c){return 'a' <= c && c <= 'z' ? true : false;}
int main(){
std::string k,c,m = "";
m.reserve(666666);k.reserve(666666);
std::cin >> k >> c;
for(int i = 0;i < 11;i++) k += k;
for(int i = 0;i < c.size();i++){
if(isLower(c[i])){
if(!isLower(k[i])) k[i] ^= ' ';
m.push_back(c[i] - k[i] + 'a');
if(m[i] < 'a') m[i] += 26;
}else{
if(isLower(k[i])) k[i] ^= ' ';
m.push_back(c[i] - k[i] + 'A');
if(m[i] < 'A') m[i] += 26;
}
}
std::cout << m;
return 0;
}