题目:给定一个正整数,返回它在 Excel 表中相对应的列名称。
例如,
1 -> A
2 -> B
3 -> C
...
26 -> Z
27 -> AA
28 -> AB
...
示例 1:
输入: 1
输出: "A"
示例 2:
输入: 28
输出: "AB"
示例 3:
输入: 701
输出: "ZY"
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/excel-sheet-column-title
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
class Solution {
public:
string convertToTitle(int columnNumber) {
string s;
while(columnNumber > 26){//判断当前columnNumber值是否大于26
if(columnNumber%26 == 0){ //考虑特殊情况,如果该值是26的倍数,直接是Z,商值减1
s.push_back('Z');
columnNumber = columnNumber/26-1;
}else{//考虑特殊情况,如果该值是不26的倍数
s.push_back(char('A'+(columnNumber%26)-1));
columnNumber = columnNumber/26;
}
}
s.push_back(char('A'+columnNumber-1));//处理最后的columnNumber
reverse(s.begin(),s.end()); //反转字符串得到最后的结果
return s;
}
};