Leetcode: Excel Sheet Column Title
2015-05-14 04:10
260 查看
Question
Given a positive integer, return its corresponding column title as appear in an Excel sheet.For example:
[code]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.
Hide Tags Math
Analysis
This problem is to convert 1-26 to A-Z. Commonly, this kind of problem using ‘mod’ is in range [0,25].The general equation is
an∗26n+an−1∗26n−1+...+a1∗261+a0a_n *26^n+a_{n-1}*26^{n-1} + ...+a_1 *26^1+a_0
where ai∈[1,26]a_i\in[1,26]
Each time we get the last digit by computing d=n%26. To convert it to be [0,25], we have to decrease the last digit of n by 1.
For example, after get d=a0−1d = a_0 -1, we do n = n/26, so we have
an∗26n−1+an−1∗26n−2+...+a1a_n *26^{n-1}+a_{n-1}*26^{n-2} + ...+a_1
So by doing d=(n-1)%26, we get the number[0,25] for a1a_1.
See solution v2
Solution
v1
The idea of this solution is to lend carry=1 to the lower digit if it is 26.[code]class Solution: # @param {integer} n # @return {string} def convertToTitle(self, n): res = [] if n<=0: return res while(n>0): d = n%26 n = n/26 if d==0: d = 26 n = n -1 res = [ str(unichr(d+64)) ] + res return "".join(res)
v2
This is general solution[code]class Solution: # @param {integer} n # @return {string} def convertToTitle(self, n): res = [] if n<=0: return res while(n>0): d = (n-1)%26 res = [ str(unichr(d+65)) ] + res n = n/26 return "".join(res)
相关文章推荐
- LeetCode 171/168 Excel Sheet Column Number/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-168. Excel Sheet Column Title
- leetcode Excel Sheet Column Title
- leetcode 168. Excel Sheet Column Title | 进制转化
- [leetcode: Python] 168. Excel Sheet Column Title
- [LeetCode]168 Excel Sheet Column Title
- [LeetCode] Excel Sheet Column Title
- Excel Sheet Column Title - LeetCode 168
- leetcode 168 Excel Sheet Column Title
- LeetCode:Excel Sheet Column Title
- Leetcode: Excel Sheet Column Title
- leetcode 168. Excel Sheet Column Title
- leetCode(48):Excel Sheet Column Number And Excel Sheet Column Title
- [Leetcode] 168. Excel Sheet Column Title 解题报告