美文网首页
40Excel表列序号

40Excel表列序号

作者: Jachin111 | 来源:发表于2020-08-19 12:51 被阅读0次

    给定一个Excel表格中的列名称,返回其相应的列序号。
    例如,
    A -> 1
    B -> 2
    C -> 3
    ...
    Z -> 26
    AA -> 27
    AB -> 28
    ...

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

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

    示例 3:
    输入: "ZY"
    输出: 701

    二十六进制转十进制

    class Solution:
        def titleToNumber(self, s: str) -> int:
            res = 0
            bit = 1
            for a in s[::-1]:
                res += (ord(a) - 64) * bit
                bit *= 26
            return res
    

    哈希表

    class Solution:
        def titleToNumber(self, s: str) -> int:
            d = len(s)
            value = 0
            sdict = {}
            for i in range(1, 27):
                sdict[chr(i+64)] = i
            for i in s:
                if d > 0:
                    value += sdict[i] * 26**(d-1)
                    d -= 1
            return value
    
    import functools
    class Solution:
        def titleToNumber(self, s: str) -> int:
            return functools.reduce(lambda x, y: x * 26 + y, [ord(a) - 64 for a in s ])
    
    class Solution:
        def titleToNumber(self, s: str) -> int:
            return sum( (ord(a) - 64) * (26 ** i)  for i, a in enumerate(s[::-1]))
    

    来源:力扣(LeetCode)

    相关文章

      网友评论

          本文标题:40Excel表列序号

          本文链接:https://www.haomeiwen.com/subject/vamrjktx.html