当时没写出来,现在补一个
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 } }
全部评论
(2) 回帖