您的位置:首页 > 其它

字符串简单加密算法

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的情况。
地区

西安研究所
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();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: