168. Excel Sheet Column Title
Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB ...
Example 1:
Input: 1 Output: "A"
Example 2:
Input: 28 Output: "AB"
Example 3:
Input: 701 Output: "ZY"
这道题需要注意进位时,27是AZ,也就是说刚好能除尽26时,还不需要进位,除尽26以后再超了才可以进位。这一点调了一会儿。
class Solution {
public:
string convertToTitle(int n) {
unordered_map<int,string> mp={{1,"A"},{2,"B"},{3,"C"},{4,"D"},{5,"E"},{6,"F"},{7,"G"},{8,"H"},{9,"I"},{10,"J"},{11,"K"},{12,"L"},{13,"M"},{14,"N"},{15,"O"},{16,"P"},{17,"Q"},{18,"R"},{19,"S"},{20,"T"},{21,"U"},{22,"V"},{23,"W"},{24,"X"},{25,"Y"},{0,"Z"}};
string ans1="";
while(n>0)
{
int t=n%26;
bool flag=false;
if(t==0)flag=true;
ans1+=mp.at(t);
n/=26;
if(flag)n--;
}
string ans;
for(int i=ans1.length()-1;i>=0;i--)
{
ans+=ans1[i];
}
return ans;
}
};