Leetcode168. Excel表列名称
题目:
给定一个正整数,返回它在 Excel 表中相对应的列名称。
题解:
这道题本质上其实就是进制转换,把 10 进制转为 26 进制表示;
区别就在于题目规定的数字中没有 0 ,换句话讲,正常的 26 进制本应该满 26 进 1,然后低位补 0,但是这里满 26 的话就用 26 表示。满 27 的时候才会向前进 1,然后低位补 1。所以 Z(26) 的下一个数字就是 A(1)A(1),即 27 对应 AA。
scala代码如下:
def convertToTitle(n: Int): String = {
var n1 =n
val sb = new StringBuilder()
while (n1 > 0) {
var c = n1 % 26
if (c == 0) {
c = 26
n1 = n1 - 1
}
sb.insert(0, ('A' + c - 1).toChar)
n1 /= 26
}
sb.toString()
}