算法-Excel字母表转换成数字 26进制转换

给你一个整数 columnNumber ,返回它在 Excel 表中相对应的列名称。

例如:

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

示例 1:

复制代码
输入:columnNumber = 1
输出:"A"

示例 2:

复制代码
输入:columnNumber = 28
输出:"AB"

示例 3:

复制代码
输入:columnNumber = 701
输出:"ZY"

示例 4:

复制代码
输入:columnNumber = 2147483647
输出:"FXSHRXW"

提示:

  • 1 <= columnNumber <= 231 - 1

    复制代码
    public class Solution {
        //用周期法+进制规律
        //假设num xxx为26进制
        //10进制为x+x*26^1+x*26^2
        public static String convertToTitle(int columnNumber) {
            //10进制成26
            char[] arr=new char[]{'A','B','C','D','E','F','G','H',
                                  'I','J','K','L','M','N','O','P',
                                  'Q','R','S','T','U','V','W','X',
                                  'Y','Z'};
            if(columnNumber<26)
            {
                return Character.toString(arr[columnNumber-1]);
            }else
            {
                String s="";
                while (columnNumber>26)
                {
                    if(columnNumber%26==0)
                    {//26的整数倍速
                        s='Z'+s;
                        columnNumber=columnNumber/26-1;
                    }else {
                        //1-25
                        s=arr[columnNumber%26-1]+s;
                        columnNumber=columnNumber/26;
                    }
    
    
                }
                s=arr[columnNumber-1]+s;
                return s;
    
            }
        }
    
        public static void main(String[] args) {
            System.out.println(convertToTitle(26*26*26));
        }
    
    }
相关推荐
日月云棠3 小时前
各版本JDK对比:JDK 25 特性详解
java
爱理财的程序媛3 小时前
openclaw 盯盘实践
算法
用户8307196840823 小时前
Spring Boot 项目中日期处理的最佳实践
java·spring boot
JavaGuide4 小时前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
java·spring·ai·claude code
IT探险家4 小时前
Java 基本数据类型:8 种原始类型 + 数组 + 6 个新手必踩的坑
java
花花无缺4 小时前
搞懂new 关键字(构造函数)和 .builder() 模式(建造者模式)创建对象
java
用户908324602734 小时前
Spring Boot + MyBatis-Plus 多租户实战:从数据隔离到权限控制的完整方案
java·后端
桦说编程5 小时前
实战分析 ConcurrentHashMap.computeIfAbsent 的锁冲突问题
java·后端·性能优化
MobotStone7 小时前
Google发布Nano Banana 2:更快更便宜,图片生成能力全面升级
算法
程序员清风9 小时前
用了三年AI,我总结出高效使用AI的3个习惯!
java·后端·面试