当前位置 博文首页 > Aays2790的博客:leetcode482. 密钥格式化(Javascript)

    Aays2790的博客:leetcode482. 密钥格式化(Javascript)

    作者:[db:作者] 时间:2021-09-08 13:41

    在这里插入图片描述
    思路:
    去横杠
    转大写
    加入头部
    遍历加入剩余项和横杠

    注意点:
    加入头部时判断字符串长度是否小于于k,决定是否加入横杠
    遍历时最后一项不用加横杠

    var licenseKeyFormatting = function(s, k) {
        let newS=s.replace(/-/g,'')
        function replaceStr(str){
            let strArr=[...str]
            for(let i=0;i<strArr.length;i++){ 
                let asciiCode=strArr[i].charCodeAt(0)
                if(asciiCode>=97 && asciiCode<=122){
                    strArr[i]=String.fromCharCode(asciiCode-32)
                }
            }
            return strArr.join('')
        }
        newS=replaceStr(newS)
        let result=''
        let headNum=newS.length%k
        headNum!==0?
        (newS.length<=k?result+=newS.slice(0,headNum):result+=newS.slice(0,headNum)+'-')
        :''
        for(let i=headNum+k;i<=newS.length;i+=k){
            result+=newS.slice(i-k,i)
            i!==newS.length?result+='-':''
        }
        return result
    };
    

    在这里插入图片描述
    时间复杂度:O(n),n为字符串长度
    空间复杂度:O(1),用到了额外常数个变量

    cs