力扣(LeetCode)Excel表列序号 个人题解

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

例如,

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

示例 1:

输入: "A"
输出: 1

示例 2:

输入: "AB"
输出: 28

示例 3:

输入: "ZY"
输出: 701

致谢:
特别感谢 @ts 添加此问题并创建所有测试用例。

思路比较简单,相当于把26进制化为十进制。这里我偷懒把最低位单独出来计算,省去了一步阶乘的麻烦,可读性比较差,但是还是能看得懂的。

代码如下:

class Solution {
     public int titleToNumber(String s) {
        int mi=26;
        int ans=s.charAt(s.length()-1)-'A'+1;
        for(int i=s.length()-2;i>=0;i--)
        {
            ans+=(s.charAt(i)-'A'+1)*mi;
            mi*=26;
        }
        return ans;
    }
}
原文地址:https://www.cnblogs.com/axiangcoding/p/10434298.html