华为机试在线训练_简单密码(字符串)
简单密码
http://www.nowcoder.com/questionTerminal/7960b5038a2142a18e27e4c733855dac
/* 本文系「人工智能安全」(微信公众号)原创,转载请联系本文作者(同博客作者)。 欢迎你转发分享至朋友圈,并给予「关注、星标、点赞」三连支持。互相欣赏,互相批判。 我是一名有诗人气质的网络安全工程师 期待与你的思想交流碰撞出智慧的花火 水木清华 2020-03-15 简单密码 */ #include<iostream> using namespace std; //密码(口令)变换的函数接口 string Password_Transformation(string str) { //字典法:考虑两个字典,一个是明文字典 a[],另一个是明文对应的加密字典 b[]。 //然后采用字典元素对应的方法,做加密或解密,实现方法为“字典下标对应索引以及元素匹配”。 char a[] = {"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"}; //非必要的参照字典 char b[] = {"bcdefghijklmnopqrstuvwxyza222333444555666777788899990123456789"}; //字符输出对应字典 int len = str.size(); for (int i = 0; i < len; i++) { //小写字母转数字 if ((str[i] >= 'a') && (str[i] <= 'z')) { str[i] = b[str[i] - 'a' + 26]; } //大写字母转小写 if ((str[i] >= 'A') && (str[i] <= 'Z')) { str[i] = b[str[i] - 'A']; } //数字不用转换,保持原样 } return str; } //主函数 int main() { string str; while (getline(cin,str)) { cout << Password_Transformation(str) << endl; } return 0; } //笨方法:为每一种情况写一个 if 判别语句,对应输出结果即可,
大厂面试 文章被收录于专栏
分享有用的面试经历,倾吐有心的面试感悟,讲述有趣的面试故事,以飨读者。 常用语言是C++,编程力求规范整洁,题解清晰完整,像写诗一样去写代码。 本专栏文章系「人工智能安全」(微信公众号)原创,转载请联系本文作者。 欢迎你转发分享至朋友圈,并给予「关注、星标、点赞」三连支持。互相欣赏,互相批判。 我是一名有诗人气质的网络安全工程师,期待与你的思想交流碰撞出智慧的花火。