171题目:https://leetcode.com/problems/excel-sheet-column-number/?tab=Description
给定一个string,转换成数字。
类似于多进制之间的互转,但是有一点不同,这里是从1开始的,即A对应1.而一般的多进制,都会对应到0.这是一点需要注意的。
思路就是从string的右端向左端遍历,假设现在是c,然后计算出c代表的数字,然后乘以26的某一次方,再加上之前的结果。怎么理解?比如AB,那么AB就是在B的基础上加了A个26得到的结果。
代码:
168题目:https://leetcode.com/problems/excel-sheet-column-title/?tab=Description
是上述问题的逆向过程。给定数字求string。
思路是不断取摸,然后用除法更新,继续。
取摸的结果就是最低位的值。那么这里是从1开始的,应该用26模还是27? 26!因为除数只由个数决定,而与开始位置无关。A-Z共有26个!如果是从1开始,那么就先减去1,就可以得到正确结果。因为26=Z,如果不减26%26=0,如果减一就是25%26=25。所以取摸运算的模与个数有关,然后根据起始位置做一个减法。处理完最低位以后处理次低位,也要先减一,然后重复即可。
代码: