数学:
c++
class Solution {
public:
string convertToTitle(int columnNumber) {
int n = columnNumber;
string ans;
while (n > 0) {
ans += (n - 1) % 26 + 'A'; // 26进制最后一位的字母 Excel 表序号从1开始: n-1
n = (n - 1) / 26; // 消去最低项
}
reverse(ans.begin(), ans.end());
return ans;
}
};
python
class Solution:
def convertToTitle(self, columnNumber: int) -> str:
ans = ""
while columnNumber>0:
ans += chr(65+ (columnNumber - 1) % 26) # python 'A' = chr(65)
columnNumber = (columnNumber - 1) // 26 # python 整除 //
return ans[::-1]