TypechoJoeTheme

Toasobi的博客

Excel表列名称(进制转换问题)

本文最后更新于2023年09月05日,已超过431天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
题目:
给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。

例如:

A -> 1
B -> 2
C -> 3
...
Z -> 26
AA -> 27
AB -> 28
...

思路:
这是一道进制转换题,26一轮,用十进制数表示,所以是一道十进制转26进制问题
需要十分注意的点是:本题需要我们将从1开始,我们需要使用-1 熨平取模的问题。 因为x%26=[0,25] 但是我们取从[1-26]对应[A-Z] 直接取模 26%26=0 不在我们范围内 所以我们采用-1 [0-25]对应[A-Z] (26-1)%26 =25 25+'A'='Z'

代码:

class Solution {
        public String convertToTitle(int columnNumber) {
            StringBuilder sb = new StringBuilder();
            while (columnNumber > 0) {
                columnNumber--;//解决从1开始的关键
                sb.append((char) ('A' + columnNumber % 26));
                columnNumber /= 26;
            }
            return sb.reverse().toString();
        }
    }
朗读
赞(0)
评论 (0)