描述
现在有一种密码变换算法。
九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9.
而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a 。
数字和其它的符号都不做变换。
数据范围: 输入的字符串长度满足 1 \le n \le 100 \1≤n≤100
输入描述:
输入一组密码,长度不超过100个字符。
输出描述:
输出密码变换后的字符串
示例1
输入:
YUANzhi1987
复制输出:
zvbo9441987
var keyCode = [{
str: 'abc',
num: 2
},{
str: 'def',
num: 3
},{
str: 'ghi',
num: 4
},{
str: 'jkl',
num: 5
},{
str: 'mno',
num: 6
},{
str: 'pqrs',
num: 7
},{
str: 'tuv',
num: 8
},{
str: 'wxyz',
num: 9
}];
let code = readline();
let codeParse = '';
for(let i = 0; i < code.length; i++){
let str = code[i];
if((/[A-Z]/g).test(str)){
var strCode = str.toLowerCase().charCodeAt(0);
var fStr = String.fromCharCode(strCode + 1);
if(str == 'Z'){
fStr = 'a';
}
codeParse += fStr
}else if((/[a-z]/g).test(str)){
let callback = keyCode.filter((item) => {
return item['str'].toString().includes(str);
});
codeParse += callback[0]['num']
}else{
codeParse += str;
}
}
print(codeParse)