博文中会简要介绍Leetcode P0168题目分析及解题思路。
“Excel Sheet Column Title”这道题比较基础,根据题目要求,我们可以知道其实这道题是一个26进制的题目,唯一特殊的地方在于这个26进制的起点是1而不是通常的0,所以我们每次减去1然后当成26进制来处理即可。
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 ...
以下是Java的题解代码实现。
class Solution {
public String convertToTitle(int n) {
int radix = 26;
StringBuilder ret = new StringBuilder();
while (n != 0) {
int remainder = (n-1)%radix;
ret.append((char) ('A'+remainder));
n = (n-1-remainder)/radix;
}
return ret.reverse().toString();
}
}
以下是C++的题解代码实现。
class Solution {
public:
string convertToTitle(int n) {
int radix = 26;
string title = "";
while (n != 0) {
int remainder = (n-1)%radix;
char ch = 'A'+remainder;
title = ch+title;
n = (n-1-remainder)/radix;
}
return title;
}
};