# # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # 1.为了方便从低位到高位相加将字符串反转 2. 从最低位开始相加 遇到进位 处理进位 ,如果某一一位不存在 当作 0 3.处理进位,每次相加之后计算进位,将进位转为对应的字符 4.每一位相加,反转 5. 字符和对应数值作为下标chars ="01234567890abcdefghijklmnopqrstuvwxyz" 6. 计算和模36 =当前值 计算和 //36 为进位 # @param A string字符串 # @param B string字符串 # @return string字符串 # class Solution: chars="0123456789abcdefghijklmnopqrstuvwxyz" def thirtysixAdd(self , A: str, B: str) -> str: # write code here a=A[::-1] # 反转 b=B[::-1] i=0 carry=0 # 进位 res=[] # 记录结果 while i <len(a) or i<len(b) or carry>0: dig_a=self.chars.index(a[i]) if i<len(a) else 0 dig_b=self.chars.index(b[i]) if i<len(b) else 0 #print(dig_a,dig_b) sum_num =dig_a+dig_b+carry cur_num=sum_num%36 carry=sum_num//36 res.append(self.chars[cur_num]) # 拼接字符串结果 i+=1 res_str="".join(res[::-1]) # 去除前导0 res_str=res_str.lstrip("0") if res_str!="": return res_str else: return "0"