Excel表列序号

一、需求

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

例如,

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

示例 1:

输入: "A"
输出: 1

示例 2:

输入: "AB"
输出: 28

示例 3:

输入: "ZY"
输出: 701

二、进制转换

2.1  思路分析

  1. A~Z代表1~26,遍历字符串,获得当前字符必然是A~Z中的一个,将当前字符转换成对应的整数,这些整数是以26进制表示的,转换为10进制即可;

2.2  代码实现

class Solution {
    public int titleToNumber(String s) {
        int sum = 0;
        for(int i = 0; i < s.length(); i++) {
            int tmp = s.charAt(i) - 64;
            sum = sum * 26 + tmp;
        }
        return sum;
    }
}

2.3  复杂度分析

  • 时间复杂度为O(N),遍历字符串消耗O(N)的额外空间;
  • 空间复杂度为O(1);

猜你喜欢

转载自blog.csdn.net/Sruggle/article/details/113716410
今日推荐