Leetcode 168. Excel Sheet Column Title
在线提交: https://leetcode.com/problems/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
...
Example 1:
Input: 1
Output: "A"
Example 2:
Input: 28
Output: "AB"
Example 3:
Input: 701
Output: "ZY"
思路:
这个问题实际上是要求将10进制数转为26进制的字符串, ZABC~Y,对Z需要进行特殊处理。每次取出输入的数的最后一位,放入StringBuilder中,后面需要做个反序操作(一般是先转为Char Array,然后使用Array的Reverse操作)。
已AC代码:
public class Solution
{
public string ConvertToTitle(int n)
{
StringBuilder sb = new StringBuilder();
while (n != 0)
{
if (n % 26 == 0)
{
sb.Append('Z');
n -= 26;
}
else
{
var rem = n % 26;
sb.Append((char)(rem - 1 + 'A'));
}
n /= 26;
}
// 最开始存储时StringBuilder中先存的是低位,此处由高位到低位输出,故需进行反序操作。
char[] charArr = sb.ToString().ToCharArray();
Array.Reverse(charArr);
return new string(charArr);
}
}
Rank:
You are here! Your runtime beats 100.00% of csharp submissions.