ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

力扣第168题“Excel表列名称”的解题思路

2022-01-28 19:02:28  阅读:160  来源: 互联网

标签:columnNumber 26 27 character Excel 表列 力扣 result 对应


参考代码:

class Solution {
    public  string convertToTitle(int columnNumber) {
        string result;


        while(columnNumber>0)
        {
            int current=(columnNumber-1)%26;
            columnNumber=(columnNumber-1)/26;
            char character;

            character='A'+current;
            result=character+result;
        }
        return result;
    }
}

大致思路: 

1对应A,26对应Z, 看起来像是27进位,似乎应该每次余27,每次除以27。

但是,因为1对应A,而27对应的也是A, 1%27=1, 27%27=0, 同一个A余数不同,构成矛盾。'/那么除以26行不行?

1%26=1,27%26=1,看起来这样似乎可以保持一致。

但是当26%26的时候,为0,可是实际的值却为z,又构成了新的矛盾。

所以,我们调整对应关系,让o对应A,25对应z, 26对应AA, 这样就构成了一一个正常的26进位。

这样对于A: 0%26=0, 对于AA: 26%26=0, 在余数这里可以保持一致。

新的对应关系是原先对应关系-1得到,所以在每次操作的时候, 都要让columnNumber-1, 得到新的对应关系。

值得注意的是可以先创建一个String result来将每一个字母串在一起,需要用到char强制类型转换。

标签:columnNumber,26,27,character,Excel,表列,力扣,result,对应
来源: https://blog.csdn.net/weixin_63994459/article/details/122735190

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有