黑马程序员技术交流社区

标题: 一道面试题,简单的文件加密 折射出来自己的信心问题 [打印本页]

作者: 百川    时间: 2014-3-25 21:02
标题: 一道面试题,简单的文件加密 折射出来自己的信心问题
面试的一道题:
用户从键盘输入一串字符,要求屏幕上显示的是加密后的字符。
字母字符串加密规则如下:
‘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);
复制代码





作者: czwanglei    时间: 2014-3-25 21:22
加油。。。
作者: mdb    时间: 2014-3-25 21:22
好熟悉的题目,估计是想考对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);
复制代码

作者: 百川    时间: 2014-3-25 21:31
厉害,加油~!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2