题解 | #字符串加解密#

字符串加解密

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

占用内存拉满,运行速度还行
function fn(str, isAdd = true) {
    const arr = str.split('')
    for(let i in arr) {
        const ascii = arr[i].charCodeAt()
        const val = isAdd ? 1 : -1
        const index = isAdd ? 0 : 2
        const a = [
            ['z','A','a','Z'],['Z','a','A','z'],['9','0','0','9']
        ]
        if(/[a-z]/.test(arr[i])) {
            arr[i] = arr[i] !== a[0][index] ?  String.fromCharCode(ascii - 32 + val) : a[0][index+1]
        } else if(/[A-Z]/.test(arr[i])) {
            arr[i] = arr[i] !== a[1][index] ?  String.fromCharCode(ascii + 32 + val) : a[1][index+1]
        } else if(/[0-9]/.test(arr[i])) {
            arr[i] = arr[i] !== a[2][index] ?  String.fromCharCode(ascii + val) : a[2][index+1]
        }
    }
    return arr.join('')
}
console.log(fn(readline()))
console.log(fn(readline(), false))


全部评论

相关推荐

头像 会员标识
10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务