// "1z" + "1" = "20";
function add(a,b){
let DictSet = ['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 len1 = a.length, len2 = b.length, len = len1 > len2 ? (len1 + 1) : (len2 + 1);
let str1 = a.split("").reverse();
let str2 = b.split("").reverse();
let sum = new Array(len).fill(0);
for(let i = 0; i < len1; i++) {
sum[i] = DictSet.indexOf(str1.charAt(i));// [35,1,0]
}
for(let i = 0; i < len2; i++) {
sum[i] += DictSet.indexOf(str2.charAt(i)); // [36,1,0]
}
for(let i = 0; i < len; i++) {
if(sum[i] > 35) {
sum[i+1] += sum[i] / 36;
sum[i] %= 36; // [0, 2, 0]
}
}
// 反向添加
let builder = "";
for(let i = sum.length - 1; i >= 0; i--){
builder += map[sum[i]];
}
// 以0开头结束要特判
if(builder.charAt(0)) {
builder = builder.substring(1);
}
return builder;
}
04-15
5935
07-20
377