博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode] Excel Sheet Column Title 求Excel表列名称
阅读量:6229 次
发布时间:2019-06-21

本文共 1245 字,大约阅读时间需要 4 分钟。

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

Credits:

Special thanks to  for adding this problem and creating all test cases.

此题和是一起的,但是我在这题上花的时间远比上面一道多,起始原理都一样,就是一位一位的求,此题从低位往高位求,每进一位,则把原数缩小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-recursionclass 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');    }};

本文转自博客园Grandyang的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
C实现shell管理的一个例子
查看>>
为ASP.NET控件加入快捷菜单
查看>>
Tftod 的服务器使用下载文件
查看>>
装机、UEFI双系统安装
查看>>
jsp入门
查看>>
Android-----使用Button特效 selector+shape
查看>>
android获取/更改gps和WIFI状态
查看>>
自定义线程池
查看>>
SQL Server性能优化(11)非聚集索引的覆盖索引存储结构
查看>>
Django后台管理定制admin
查看>>
从源码分析scrollTo、scrollBy、Scroller方法的区别和作用
查看>>
购买内存条的几点方法
查看>>
[51Nod1487]占领资源
查看>>
Asymptote 学习记录(1):基本的安装以及用批处理模式和交互模式绘图
查看>>
高效率随机删除数据(不重复)
查看>>
什么是死锁?其条件是什么?怎样避免死锁?
查看>>
【JDK1.8】JUC——LockSupport
查看>>
第八组Postmortem事后分析
查看>>
扁平化设计2.0
查看>>
codevs1116
查看>>