题解 | #字符串加解密#

字符串加解密

http://www.nowcoder.com/practice/2aa32b378a024755a3f251e75cbf233a

  1. 思路很简单啦,就是按题目要求给出了加解密的函数;
  2. str.charCodeAt(0)可以获得ascii码;String.fromCharCode()可以由Ascii码获得字符
  3. 我一开始算错了,我记得A的ascii码是65,然后算Z是65+26==91,但其实是90
function addPassword (str) {
//     创建一个数组接收加密后的字符
    let arr = new Array(str.length).fill(-1)
    for (let i = 0; i < str.length; i++) {
        let code = str[i].charCodeAt(0)
        if (code >= 65 && code <= 89) {
            arr[i] = (String.fromCharCode(code + 33))
        } else if (code >= 97 && code <= 121) {
            arr[i] = (String.fromCharCode(code - 31))
        } else if (parseInt(str[i]) >= 0 && parseInt(str[i]) <= 9){
            arr[i] = ((parseInt(str[i]) + 1) % 10)
        } else if (code === 90) {
            arr[i] = ('a')
        } else if (code === 122) {
            arr[i] = ('A')
        }
    }
    return arr.join('')
}

function unPassword (str) {
    //     创建一个数组接收加密后的字符
    let arr = new Array(str.length)
    for (let i = 0; i < str.length; i++) {
        let code = str[i].charCodeAt(0)
        if (code >= 66 && code <= 90) {
            arr[i] = (String.fromCharCode(code + 31))
        } else if (code >= 98 && code <= 122) {
            arr[i] = (String.fromCharCode(code - 33))
        } else if (parseInt(str[i]) >= 0 && parseInt(str[i]) <= 9){
            arr[i] = ((parseInt(str[i]) + 9) % 10)
        } else if (code === 65) {
            arr[i] = ('z')
        } else if (code === 97) {
            arr[i] = ('Z')
        }
    }
    return arr.join('')
}

console.log(addPassword(readline()))
console.log(unPassword(readline()))

全部评论

相关推荐

不愿透露姓名的神秘牛友
02-16 22:33
杉川机器人 嵌入式工程师 18.0k*13.0, 年终奖1~9个月
点赞 评论 收藏
分享
01-14 12:08
门头沟学院 Java
神哥了不得:(非引流)1.既然发出来了简历,就稍微提一点点小建议,确实简历很不错了,练手项目可以换一些质量高的,工作内容,可以加上一些量化指标,比如第一条系统响应速度由多少变成多少,减少了百分之多少,第4条就很不错。2.广投,年前实习招募比较少了
点赞 评论 收藏
分享
01-15 13:52
已编辑
河南大学 Java
六年要多久:标准头像,不吃香菜😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务