前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#版(击败100.00%的提交) - Leetcode 168. Excel表列名称 - 题解

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

作者头像
Enjoy233
发布2019-03-05 15:46:01
6130
发布2019-03-05 15:46:01
举报

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:

代码语言:javascript
复制
    1 -> A
    2 -> B
    3 -> C
    ...
    26 -> Z
    27 -> AA
    28 -> AB 
    ...

Example 1:

代码语言:javascript
复制
Input: 1
Output: "A"

Example 2:

代码语言:javascript
复制
Input: 28
Output: "AB"

Example 3:

代码语言:javascript
复制
Input: 701
Output: "ZY"

思路:

这个问题实际上是要求将10进制数转为26进制的字符串, ZABC~Y,对Z需要进行特殊处理。每次取出输入的数的最后一位,放入StringBuilder中,后面需要做个反序操作(一般是先转为Char Array,然后使用Array的Reverse操作)。

已AC代码:

代码语言:javascript
复制
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.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年07月01日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Leetcode 168. Excel表列名称 - 题解
  • Description
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档