每日一道算法题041 Excel 表列序号

213 阅读1分钟

题目

leetCode 第 171 题,Excel 表列序号 关联类型:数学

给定一个Excel表格中的列名称,返回其相应的列序号。

例如,

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

输入: "A"
输出: 1
示例 2:

输入: "AB"
输出: 28
示例 3:

输入: "ZY"
输出: 701

做题时间

class Solution {
    public int titleToNumber(String columnTitle) {
      
      
      
    }
}

以上给出方法输入参数,完成作答。

题目分析

可以理解为 26 进制进行求解,将字符串转成字符数组,然后循环从末尾开始叠加,最终得出结果

解答分析

本文只分析本人做题思路,仅供参考,了解一种解题思想,其他各种做题思路请上网查阅。

解答成功:
执行耗时:2 ms,击败了29.32% 的Java用户
内存消耗:38.3 MB,击败了87.83% 的Java用户

class Solution {
    public int titleToNumber(String columnTitle) {
        char[] chars = columnTitle.toCharArray();
        int num = 0;
        for (int i = 0; i < chars.length; i++) {
            num += Math.pow(26, i) * ((int) (chars[chars.length - 1 - i]) - 64);
        }
        return num;
    }
}