[LeetCode]168. Excel表列名称(java实现)进制转换+偏移
1. 题目
2. 读题(需要重点注意的东西)
思路(进制转换):
十进制转换为26进制
类比十进制,从0开始取,满10进一位;因此 26 进制也应该从 0 开始,满 26 进一位,如 A = 0,AA = 26。但是本题的 A 从 1 开始取值,满 27 才进位到下一位。因此需要对本题的每一位上的数都要进行减1偏移
。
3. 解法
---------------------------------------------------解法---------------------------------------------------
class Solution {
public String convertToTitle(int n) {
StringBuilder sb = new StringBuilder();
while(n > 0){
n--; // 重点
sb.append((char)(n % 26 + 'A'));
n /= 26;
}
sb.reverse();
return sb.toString();
}
}
可能存在的问题:
4. 可能有帮助的前置习题
5. 所用到的数据结构与算法思想
6. 总结
注意: 偏移是针对每一位的,因此在每次左移后,计算偏移时,都要进行减1映射。