华为2019校招笔试(9月5号) 1 26进制加法

题目 26进制加法:

2大整数相加,每位是小写字母,’a’是0,‘z’是25。求加法的和

输入输出

输入

z
bc
输出
cb
解法: 思路:

ord():返回对应的 ASCII 数值
reverse():反向列表里的元素
chr():将as码转成字符
26进制加法的过程 :
从末尾开始,按位将两数相加,如果和超过26,就需要进位,将和减去26的结果就是该位的结果。
进位要留到下一位的计算里。
可以看到这是一个递归的过程。因为上一个进位要留到下一个位相加里。
所以首先,要满足按位加,要将两个字符串补充成一个长度。
十进制我们是补0,这里是26进制,我们补’a’。
设定函数来计算按位加的过程,输入的两位的字符,输出是相加的结果和进位。这里用ord将字符串转成ascii码再模拟计算的过程。
然后对两个补完长度的字符串,进行按位加,将每一个按位加的结果存在list里, 最后将list的结果反向,并联合起来输出字符串,就是相加的结果。


# #以下只用于测试,输出应该是saeattmdsrdssvtady
# input1 =
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值