字符串简单加密算法
2013-09-07 22:35
169 查看
题目描述
输入一个字符串,其中字符串小写字母a 到 z组成。请将此字符串进行加密:
1、将字符串前半部分每个字符减1,后半部分每个字符加1。比如d减1变为c。
2、如果字符串长度为奇数,中间字符不作处理。
3、字符为a、z时做循环处理。比如,字符为a,减1为z;字符为z,加1为a。
eg:bewuz 处理后为 adwva。
输入
输入字符串
输出
输出加密后字符串
样例输入
bewuz
样例输出
adwva
提示
不考虑输入的字符串为非a-z的情况。
地区
西安研究所
输入一个字符串,其中字符串小写字母a 到 z组成。请将此字符串进行加密:
1、将字符串前半部分每个字符减1,后半部分每个字符加1。比如d减1变为c。
2、如果字符串长度为奇数,中间字符不作处理。
3、字符为a、z时做循环处理。比如,字符为a,减1为z;字符为z,加1为a。
eg:bewuz 处理后为 adwva。
输入
输入字符串
输出
输出加密后字符串
样例输入
bewuz
样例输出
adwva
提示
不考虑输入的字符串为非a-z的情况。
地区
西安研究所
public static String strEncryptionAlgorithm(String input){ char[] c=input.toCharArray(); Stack<Character> stack=new Stack<Character>(); int len=c.length; if(len%2==0){//偶数 for(int i=len-1;i>=len/2;i--){ if(c[i]=='z'){ stack.push('a'); } else{ stack.push((char)(c[i]+1)); } } for (int i=len/2-1;i>=0;i--) { if(c[i]=='a'){ stack.push('z'); } else{ stack.push((char)(c[i]-1)); } } } else if(len==1){//奇数 stack.push(c[0]); }else{ for(int i=len-1;i>=(len+1)/2;i--){ if(c[i]=='z'){ stack.push('a'); } else{ stack.push((char)(c[i]+1)); } } stack.push(c[(len-1)/2]); for (int i=(len-1)/2-1;i>=0;i--) { if(c[i]=='a'){ stack.push('z'); } else{ stack.push((char)(c[i]-1)); } } } StringBuilder sb=new StringBuilder(); while(!stack.isEmpty()){ sb.append(stack.pop()); } return sb.toString(); }
相关文章推荐
- 字符串简单加密算法
- 在情报传递过程中,为了防止情报被截获,往往需要对情报用一定的方式加密,简单的加密算法虽然不足以完全避免情报被破译,但仍然能防止情报被轻易的识别。我们给出一种最简的的加密方法,对给定的一个字符串,把其中
- perl--简单的根据hash过滤替换字符串
- 将一个简单对象转为Json字符串.
- 简单的字符串近似匹配
- 简单取出字符串中的重复字符
- 简单的复制字符串
- 一个简单的加密算法(通用于java和OC的简单加密算法)
- chapter2 简单动态字符串
- Palindromes //简单字符串
- php基础之字符串简单操作
- php字符串截取的简单方法
- 简单的SOcket传送文件字符串实现
- 简单算法—字符串处理
- C的一些简单习题(5)--两个字符串比较
- 享受LINQ:判断一组文字是否在字符串中同时出现的最简单方法
- poj 3077 Rounders 【简单字符串处理】
- Pixel density(简单的字符串处理)
- redis 数据结构之和对象---简单动态字符串SDS(simple dynamic string)
- 嵌入式 简单的读取文件并打印指定字符串的值