LeetCode168. Excel Sheet Column Title
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode168. Excel Sheet Column Title相关的知识,希望对你有一定的参考价值。
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
想法:
这个题一看实质应该是进制转换问题,将十进制转换为二十六进制,不过要注意的是对应的二十六进制是以A开头Z结尾。
于是就按照以前进制转换的方法写了,代码如下:
1 class Solution { 2 public: 3 string convertToTitle(int n) { 4 string res; 5 while (n != 0) { 6 int rem = n % 26; 7 if (rem == 0) res.append("Z"); 8 else { 9 res.append(1,‘A‘ + rem - 1); 10 } 11 n = n / 26; 12 } 13 reverse(res.begin(),res.end()); 14 return res; 15 } 16 };
检查之后发现这段代码是有问题的,当n为26或者26的整数倍数时,都没法正确处理,原因是因为没有处理上面所说的注意。但是当我改了之后,提交的时候有时报内存溢出有时时间溢出,就又要想新的方法了。
这里看了高票答案的方法,真的很厉害,只有一句:
return n == 0 ? "" : convertToTitle(n / 26) + (char) (--n % 26 + ‘A‘);
以上是关于LeetCode168. Excel Sheet Column Title的主要内容,如果未能解决你的问题,请参考以下文章
LeetCode 168: Excel Sheet Column Title
LeetCode 168. Excel Sheet Column Title
LeetCode 168. Excel Sheet Column Title
[leetcode-168-Excel Sheet Column Title]