C#版(击败100.00%的提交) - Leetcode 168. Excel表列名称 - 题解

Leetcode 168. Excel表列名称 - 题解

Leetcode 168. Excel Sheet Column Title

在线提交:
https://leetcode.com/problems/excel-sheet-column-title/


Description

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.

猜你喜欢

转载自blog.csdn.net/yanglr2010/article/details/80878017