A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

面试的一道题:
用户从键盘输入一串字符,要求屏幕上显示的是加密后的字符。
字母字符串加密规则如下:
‘a’→’d’      ‘b’→’e’     ‘w’→’z’   ……    ‘x’→’a’    ‘y’→’b’     ‘z’→’c’
‘A’→’D’      ‘B’→’E’     ‘W’→’Z’    ……    ‘X’→’A’    ‘Y’→’B’     ‘Z’→’C’
对于其他字符,不进行加密。
第一个想法是定义一个字符串abc...xyzabcABC...XYZABC。然后通过indexOf数值+3得到密码。后来想不会这么简单吧?就说了不会。
事后通过自己的想法验证了下还是很简单的。但是这小小的问题却让我觉得自己有的时候确实缺乏自信啊。希望自己以后多给自己加加油。也希望同学们以后对自己多一点信心,加油↖(^ω^)↗
下面是自己实现的代码。
  1. char chr = Console.ReadKey(true).KeyChar;
  2.                 string str = "abcdefghijklmnopqrstuvwxyzabcABCDEFGHIJKLMNOPQRSTUVWXYZABC";
  3.                 char end = str[str.IndexOf(chr) + 3];
  4.                 Console.Write(end);
复制代码




3 个回复

倒序浏览
加油。。。
回复 使用道具 举报
好熟悉的题目,估计是想考对ascii的了解的,不过楼主用的方法也可以
  1.                 char c = Console.ReadKey().KeyChar;
  2.                 if ("XYZxyz".Contains(c))
  3.                     Console.WriteLine((char)(((int)c) - 23));
  4.                 else if (((int)c >= 65 && (int)c <= 90) || ((int)c >= 97 && (int)c <= 122))
  5.                     Console.WriteLine((char)(((int)c) + 3));
  6.                 else Console.WriteLine(c);
复制代码
回复 使用道具 举报
厉害,加油~!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马