输入:
输入有三行:
第一行是:加密之后的字符相较于"abcdefghigklmnopqrstuvwxyz0123456789"所在的位置
第二行是:模式,其中1代表加密,0代表解密
第三行是:要操作的字符串
输出:
被处理之后的字符串
Solution:
#include<iostream>
#include<string>
using namespace std;
int main(){
string wordlist;
int mode;
string input;
string output;
string A="abcdefghijklmnopqrstuvwxyz0123456789";
cin>>wordlist>>mode>>input;
if(mode==1){
for(int i=0; i<input.size(); i++){
if(input[i]>='a'&&input[i]<='z'){
output+=wordlist[input[i]-'a'];
}
else{
output+=wordlist[input[i]-'0'+26];
}
}
}
else{
for(int i=0; i<input.size(); i++){
for(int j=0; j<wordlist.size(); j++){
if(input[i]==wordlist[j]){
output+=A[j];
}
}
}
}
cout<<output<<endl;
return 0;
}
思路:
加密的话就找找原来字符的位置,然后在加密字典中找到对应的字符就行了。
解密只能暴力破解喽。