LeetCode#171Excel Sheet Column N

2016-11-03  本文已影响10人  如烟花非花

问题描述

Related to question Excel Sheet Column Title

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

For example:

A -> 1

B -> 2

C -> 3

...

Z -> 26

AA -> 27

AB -> 28

补充说明:

这个题目的意思是在Excel应用程序中,行的标题往往是A、B、C ... AA、AB、...这样子的字母形式,现在要求把他们转换成1、 2、 3 ... 26、 27 ...这样的数字形式。

方案分析

  1. 单字母的解决方案,这个问题很常规,就是如何将字母转为对应的数字。
  2. 当字母是多位,如AA这样的,末尾数字还表示原本对应数据,前面一个数字代表相当于进位,只不过这里是26位进制。

    例如:AA = 26 × 1 + 1 = 27

    再如:BAC = 2 × 26 × 26 + 1 × 26 + 3

    又如:BBAA = 2 × 26 × 26 × 26 + 2 × 26 × 26 + 1 × 26 + 1

python实现

class Solution(object):
    def titleToNumber(self, s):
        """
        :type s: str
        :rtype: int
        """
        sum = 0
        for index, item in enumerate(s[::-1]):
            sum  += ((ord(item) - ord('A') + 1) * pow(26, index))
        return sum
上一篇下一篇

猜你喜欢

热点阅读