长大后想做什么?做回小孩!

0%

LeetCode——Excel表列名称&Excel表列序号

Excel表列名称 简单、Excel表列序号 简单

NO.168 Excel表列名称 简单

YQIy7Q.png

思路一:取余 很麻烦的题目,虽然是个简单,但是细节很磨人。看完题,不难想到取余的方法,有点 10 进制转换 26 进制的感觉,不过是将数字都换成和逐一对应的字母罢了。

需要注意的是,对 26 取余之后得到的是低位值,对 26 做商得到的是高位值,所以最后要 reverse()一下。

1
2
3
4
5
6
7
8
9
public String convertToTitle(int n) {
StringBuilder ans = new StringBuilder();
while (n > 0) {
n--;
ans.append((char) ('A' + n % 26));
n/=26;
}
return ans.reverse().toString();
}

NO.171 Excel表列序号 简单

YQLSDP.png

思路一:按位转换 NO.168的逆运算,既然NO.168 是 10 进制转 26 进制,那么本题就是 26 进制转换 10 进制。

1
2
3
4
5
6
7
8
public int titleToNumber(String s) {
int ans = 0;
for (char c : s.toCharArray()) {
int temp = c-'A';
ans = ans*10 + temp;
}
return ans;
}

时间复杂度:O(n)


本人菜鸟,有错误请告知,感激不尽!

更多题解和源码:github