声明:原题目转载自LeetCode,解答部分为原创
Problem :
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
Solution:
思路:本题目属于进制转换的一种,将十进制数值转换成26进制数值表示,该26进制数的每一位均代表一个大写字母,实现位数与大写字母的转换。
代码如下:
#include<iostream>
#include<stack>
using namespace std;
class Solution {
public:
string convertToTitle(int n) {
int num = n;
string result;
stack<char> output;
do
{
num -= 1;
int qurt = num / 26;
int left = num - qurt * 26;
char letter = (char)left;
num = qurt;
// cout << left << " ";
output.push('A' + left);
// cout << result << endl;
}while(num != 0);
while(!output.empty())
{
result += output.top();
output.pop();
}
return result;
}
};
int main()
{
Solution text;
cout << text.convertToTitle(1) << endl;
cout << text.convertToTitle(27) << endl;
cout << text.convertToTitle(53) << endl;
return 0;
}