LeetCode: 007-Excel Sheet Column Number

来源:互联网 发布:软件开发与设计 编辑:程序博客网 时间:2024/05/20 06:09

LeetCode: 007-Excel Sheet Column Number

公历年末要到啦,可以休假啦 ~

计算Excel的列数 & 字符处理

实质上是26进制转换+字符串处理,了解ascii码这道题非常简单。

我的解法

尽管速度不快。。。确实该好好想想怎么样提高代码速度了。。。

class Solution(object):    def titleToNumber(self, s):        result = 0        for i in s:            result = result * 26 + (ord(i) - 64)        return result

还有慢速递归版本

class Solution(object):    def titleToNumber(self, s):        """        :type s: str        :rtype: int        """        if s == '':            return 0        else:            return self.titleToNumber(s[:-1]) * 26 + (ord(s[-1]) - 64) 

写完之后突然想到一个快一点点的解法:
用了map 和reduce

class Solution(object):    def titleToNumber(self, s):        """        :type s: str        :rtype: int        """        return reduce( lambda i,j: i* 26 + j ,map( lambda k: ord(k) - 64, s))
0 0
原创粉丝点击