核心要义:我们要的是[0-25]
这26个数字,因为用26这个数字的话无法处理 'Z'(c++),所以循环的开始,我们将n-1即可
python实现
class Solution:
def ExcelTitle(self , n: int) -> str:
# write code here
chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
res = ""
while n>0:
n -= 1
res = chars[n%26] + res
n //= 26
return res
c++实现
class Solution {
public:
string ExcelTitle(int n) {
// write code here
string res;
while(n--) {
int temp = n % 26;
n /= 26;
res.insert(0, 1, temp + 'A');
}
return res;
}
};
其实这像是个进制转换题,恶心的点就在从1开始,而不是从0开始,所以减一就解决了