字节跳动面试算法题,36进制加法

当时没写出来,现在补一个
function  add(str1,str2){
    let map = [0,1,2,3,4,5,6,7,8,9, "a","b","c","d","e","f","g",
               "h","i","j","k","l","m","n","o","p","q","r", "s","t",
               "u", "v", "w", "x", "y", "z"];
    let st1 = str1.split("").reverse();
    let st2 = str2.split("").reverse();
    let res = [];
    let inp = 0;
    let i = 0;
    for( ;i< st1.length && i < st2.length; i++){
         let num =charAdd(st1[i], st2[i], inp);
         res.unshift(map[num % 36]);
         inp = num / 36;
       }
    
    let remain = st1.length-1 > i ? st1 : st2;
    for( ;i < remain.length; i++){
         let num =charAdd(0, remain[i], inp)
         res.unshift(map[num % 36])
         inp = num / 36 >>> 0
    }
    if(!!inp){
       res.unshift(map[inp])
    }
   return res.join("")
}
function charAdd(char1,char2,inp){
    let num1 = tranNum(char1)
    let num2 = tranNum(char2)
    let inpN = tranNum(inp) 
    return num1+num2 + inpN
}
function tranNum(ch){
    if( ch >= "0" && ch <= "9"){return +ch}
     else{
         return ch.charCodeAt(0) - 'a'.charCodeAt(0) + 10
     }
}



#笔试题目##字节跳动#
全部评论
当时三面也是这道题,虽然思路对了,但没写完给挂了。太紧张了,导致思路混乱
点赞
送花
回复
分享
发布于 2020-07-31 16:54
胖哥补充过这道题,https://mp.weixin.qq.com/s/bgD1Q5lc92mX7RNS1L65qA
点赞
送花
回复
分享
发布于 2021-04-14 12:06
秋招专场
校招火热招聘中
官网直投

相关推荐

点赞 6 评论
分享
牛客网
牛客企业服务