import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
* 进行凯撒解密
* @param password string字符串 旺仔哥哥的密码
* @param n int整型 每个字符加密过程中错位的次数
* @return string字符串
*/
public String decodeWangzai (String password, int n) {
// write code here
n %= 26; // n的范围限制在[0,25]之间
char[] cArr = password.toCharArray();
StringBuilder res = new StringBuilder();
for (int i = 0; i < cArr.length; i++) {
// 原始位置
int originalPos = cArr[i] - 'a';
int newPos = 0;
// 'a'
if(originalPos == 0){
newPos = 26 - n;
}else{
// x y z a b c d e f g ...x y z
// -3 -2 -1 0 1 2 3 4 5 6 ...23 24 25
// 非'a',当originalPos = 3(也就是字母为d),n = 5时,3-5 = -2(字母y的位置,-2+26 = 24)
newPos = originalPos - n < 0 ? originalPos - n + 26 : originalPos - n;
}
char c = (char)(newPos+'a');
res.append(c);
}
// zabc -> 1 = abcd
// 0 1 2 3
//逆向: 26-1 1-1 2-1 3-1
return new String(res);
}
}