博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode 168 Excel Sheet Column Title(Excel的列向表标题)
阅读量:6201 次
发布时间:2019-06-21

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

版权声明:转载请联系本人,感谢配合!本站地址:http://blog.csdn.net/nomasp https://blog.csdn.net/NoMasp/article/details/50498759

翻译

给定一个正整数,返回它作为出现在Excel表中的正确列向标题。例如:    1 -> A    2 -> B    3 -> C    ...    26 -> Z    27 -> AA    28 -> AB

原文

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

分析

我很少用Excel,所以题意不是满懂,就先看了看别人的解法。

class Solution {public:    string convertToTitle(int n) {        if (n<=0) return "";        if (n<=26) return string(1, 'A' + n - 1);        return convertToTitle( n%26 ? n/26 : n/26-1 ) + convertToTitle( n%26 ? n%26 : 26 );    }};

然后放到VS中试了一下。终于知道题目的意思了……

1 ... A*******26 ... Z27 ... AA*******52 ... AZ53 ... BA*******702 ... ZZ703 ... AAA

大神的递归用的真是666,三目运算符也用的恰到好处,不得不佩服呐!

上面采用的是

'A' + n - 1

紧接着,我写了如下代码:

#include 
using namespace std;string convertToTitle(int n) { string title; while (n > 0) { title = (char)('A' + (--n) % 26) + title; n /= 26; } return title;}int main() { cout << convertToTitle(702); return 0;}

核心代码

title = (char)('A' + (--n) % 26) + title;

解决的是习惯上都用的是

string title;title += "X";

这样都是往末尾追加的,可能在前面追加不是很习惯,不过也是没问题的。

因为有个起始的A在里面,所以后面加的时候一开始要把n减掉1。每次得到最后一个字符,也就是每次除掉一个26,就当作是26进制一样,其实和十进制是相通的。

代码

class Solution {public:    string convertToTitle(int n) {        string res;        while (n > 0) {            res = (char)('A' + (--n) % 26) + res;            n /= 26;        }        return res;    }};
你可能感兴趣的文章
删除字符串开始及末尾的空白符,并且把数组中间的多个空格(如果有)符转化为1个...
查看>>
mysql_connect v/s mysql_pconnect
查看>>
织梦友情链接正确的调用方法和技巧
查看>>
假如 Micromedia 没被收购,会不会早于 Apple 推动 H5、CSS3 的发展
查看>>
简洁的 c# 拖动无标题栏窗体
查看>>
899F - Letters Removing
查看>>
Codeforces 961E - Tufurama
查看>>
ListView
查看>>
linux修改ftp上传路径
查看>>
【C语言】第一个C语言小程序 —— 日期算法和万年历
查看>>
eclipse中svn插件在线安装方式
查看>>
js 的 this
查看>>
Cetnos搭建vsftp服务器
查看>>
Js数据类型、Json格式、Json对象、Json字符串
查看>>
C# 特性篇 Attributes
查看>>
隐藏sharepoint列表栏
查看>>
Effective java 读书笔记
查看>>
【学习】在Windows10平台使用Docker ToolBox安装docker(一)
查看>>
JVM调优总结 -Xms -Xmx -Xmn -Xss
查看>>
ZOJ 3913 Bob wants to pour water
查看>>