leetcode-Excel Sheet Column Title
2015-10-11 00:27
399 查看
题目:
把数字转化为excel形式的字符表示。示例:1->A 2->B 3->C ... 26->Z 27->AA...
解题思路:
乍一看有点像进制转换题目,不过细想想发现它没有‘0’。所以这时候需要我们仔细观察:很明显,这是26进制的表示方法,但是没有0的表示方法。所以我们来归纳一下,十进制10在这里面怎么表示,是Z,20呢?B*,30是C*,以此类推:
也就是说当n>0且n%26 == 0时,我们输出Z,并且向上一位借1(这里有点像除法的借位),换而言之,当n%26==0时,我们输出Z之后,在后续的计算中n应该等于 (n-1)/26。所以代码如下
把数字转化为excel形式的字符表示。示例:1->A 2->B 3->C ... 26->Z 27->AA...
解题思路:
乍一看有点像进制转换题目,不过细想想发现它没有‘0’。所以这时候需要我们仔细观察:很明显,这是26进制的表示方法,但是没有0的表示方法。所以我们来归纳一下,十进制10在这里面怎么表示,是Z,20呢?B*,30是C*,以此类推:
10 - Z 20 - B* 30 - C* ... 260 - YZ
也就是说当n>0且n%26 == 0时,我们输出Z,并且向上一位借1(这里有点像除法的借位),换而言之,当n%26==0时,我们输出Z之后,在后续的计算中n应该等于 (n-1)/26。所以代码如下
class Solution(object): def convertToTitle(self, n): """ :type n: int :rtype: str """ ret = '' alpha = 'ZABCDEFGHIJKLMNOPQRSTUVWXY' while n > 0: ret = alpha[n%26] + ret n = (n-1) / 26 return ret
相关文章推荐
- 分支提交的冲突问题
- 多线程的安全隐患
- Maven和Eclipse集成和构建多模块Maven项目
- iOS-关于页面跳转时全局变量赋值不到的问题
- Git如何使用远程仓库
- Javascript的继承
- browser storage limation
- playframework
- nginx学习之安装篇
- 最新版SDWebImage的使用
- Linux配置端口为80
- android使用https安全连接
- AsyncTask源码分析
- AsyncTask源码分析
- 二叉树深度和平衡二叉树的判定
- 大型网站首页执行时间0.3秒,性能算好还是算坏?
- BestCoder Round #59 (div.2) B. Reorder the Books 想法题
- 数据库 | SQL
- POJ 3709 K-Anonymous Sequence (斜率优化DP)
- 可以暂停的线程池