题目链接:168. Excel表列名称 - 力扣(LeetCode)
class Solution {
public:
string convertToTitle(int columnNumber) {
string ss1;
int MOD = 0;
if(columnNumber <= 26)
{
ss1 += (columnNumber + 'A' - 1);
return ss1;
}
while(columnNumber)
{
int MOD = columnNumber % 26;
columnNumber /= 26;
if(MOD == 0)
{
ss1 += 'A' + 26 - 1;
columnNumber -= 1;
continue;
}
ss1 += (MOD + 'A' - 1);
}
reverse(ss1.begin(), ss1.end());
return ss1;
}
};
这个题目就是从后往前每位上除以26,不要用pow,因为你想想,你要是第一次除以26,第二次除以26的平方,加起来那不就是除以三次26了,我当时就是坏在这里了,对了,还要特别关注余数为0的情况,尤其是52这个样例,多试试。
相似题目:171. Excel 表列序号 - 力扣(LeetCode)
这个题目就是给了字符来找数字,这个从后往前遍历,这个恰恰相反,这个不要只乘以26了,这个因为每次把每一位单独计算,要计算pow(26,x);