[LeetCode] Excel Sheet Column Title 求Excel表列名称
2015-01-16 07:22
477 查看
Given a positive integer, return its corresponding column title as appear in an Excel sheet.
For example:
Credits:
Special thanks to @ifanchu for adding this problem and creating all test cases.
此题和Excel Sheet Column Number 求Excel表列序号是一起的,但是我在这题上花的时间远比上面一道多,起始原理都一样,就是一位一位的求,此题从低位往高位求,每进一位,则把原数缩小26倍,再对26取余,之后减去余数,再缩小26倍,以此类推,可以求出各个位置上的字母。最后只需将整个字符串翻转一下即可。 代码如下:
解法一:
然后我们可以写的更简洁一些:
解法二:
这道题还可以用递归来解,而且可以丧心病狂的压缩到一行代码来解:
解法三:
类似题目:
Excel Sheet Column Number
参考资料:
https://leetcode.com/discuss/19024/simple-c-code
https://leetcode.com/discuss/19047/my-1-lines-code-in-java-c-and-python
LeetCode All in One 题目讲解汇总(持续更新中...)
For example:
1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 -> AB
Credits:
Special thanks to @ifanchu for adding this problem and creating all test cases.
此题和Excel Sheet Column Number 求Excel表列序号是一起的,但是我在这题上花的时间远比上面一道多,起始原理都一样,就是一位一位的求,此题从低位往高位求,每进一位,则把原数缩小26倍,再对26取余,之后减去余数,再缩小26倍,以此类推,可以求出各个位置上的字母。最后只需将整个字符串翻转一下即可。 代码如下:
解法一:
class Solution { public: string convertToTitle(int n) { string res = ""; while (n) { if (n % 26 == 0) { res += 'Z'; n -= 26; } else { res += n%26 - 1 + 'A'; n -= n%26; } n /= 26; } reverse(res.begin(), res.end()); return res; } };
然后我们可以写的更简洁一些:
解法二:
// Non-recursion class Solution { public: string convertToTitle(int n) { string res; while (n) { res += --n % 26 + 'A'; n /= 26; } return string(res.rbegin(), res.rend()); } };
这道题还可以用递归来解,而且可以丧心病狂的压缩到一行代码来解:
解法三:
class Solution { public: string convertToTitle(int n) { return n == 0 ? "" : convertToTitle(n / 26) + (char)(--n % 26 + 'A'); } };
类似题目:
Excel Sheet Column Number
参考资料:
https://leetcode.com/discuss/19024/simple-c-code
https://leetcode.com/discuss/19047/my-1-lines-code-in-java-c-and-python
LeetCode All in One 题目讲解汇总(持续更新中...)
相关文章推荐
- LeetCode Excel Sheet Column Title (输出excel表的列名称)
- [LeetCode] 168. Excel Sheet Column Title 求Excel表列名称
- LeetCode 168. Excel Sheet Column Title (Excel 表格列名称)
- 【Leetcode】Excel Sheet Column Title
- [LeetCode]Excel Sheet Column Title
- leetcode 154: Excel Sheet Column Title
- [leetcode] Excel Sheet Column Title & Excel Sheet Column Number
- [LeetCode] Excel Sheet Column Title
- 【leetcode 进制转换】Excel Sheet Column Title
- LeetCode Majority Element, Excel Sheet Column Title
- [LeetCode]168 Excel Sheet Column Title
- LeetCode:《Excel Sheet Column Title》
- leetcode-excel sheet column title
- LeetCode Excel Sheet Column Title
- LeetCode(168) Excel Sheet Column Title
- 【LeetCode】168. Excel Sheet Column Title
- Leetcode: Excel Sheet Column Title
- [leetcode]Excel Sheet Column Title
- LeetCode Excel Sheet Column Title
- leetcode:Excel Sheet Column Title