题目地址:https://leetcode.com/problems/excel-sheet-column-number/open in new window

Total Accepted: 77115 Total Submissions: 185238 Difficulty: Easy

题目大意

Given a column title as appear in an Excel sheet, return its corresponding column number.

Forexample:

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

Example 1:

Input: "A"
Output: 1

Example 2:

Input: "AB"
Output: 28

Example 3:

Input: "ZY"
Output: 701

解题方法

典型的26进制题目啊!没啥难度。

重点是26进制中每一位对应的26的多少次幂。不要搞错。另外,为了防止计算时间过 长,而且避免数据转化,没有采用Math.exp的方法。直接手撸26的次幂。

Java解法

算法如下:

public class Solution {
    public int titleToNumber(String s) {
        int answer=0;
        char[] nums=s.toCharArray();
        for(int i=0; i<nums.length; i++){
            int temp=nums[i]-'A'+1;//字幕代表的数字是多少
            for(int j=0; j<nums.length-i-1; j++){//注意循环的次数
                temp*=26;
            }
            answer+=temp;
        }
        return answer;
    }
}

1 2 3 4 5 6 7 8 9 10 11 12 13 14

AC:2ms

Python解法

python的代码总是那么短。

class Solution(object):
    def titleToNumber(self, s):
        """
        :type s: str
        :rtype: int
        """
        res = 0
        for c in s:
            res = 26 * res + ord(c) - ord("A") + 1
        return res

1 2 3 4 5 6 7 8 9 10

DDKK.COM 弟弟快看-教程,程序员编程资料站,版权归原作者所有

本文经作者:负雪明烛 授权发布,任何组织或个人未经作者授权不得转发