美文网首页
8.28 - hard - 111

8.28 - hard - 111

作者: 健时总向乱中忙 | 来源:发表于2017-08-28 23:47 被阅读0次

631. Design Excel Sum Formula

这题目的描述真是茫茫长。。。

class Excel(object):
    
    def __init__(self, H, W):
        self.M = [[{'v': 0, 'sum': None} for i in range(H)] for j in range(ord(W) - 64)]

    def set(self, r, c, v):
        self.M[r - 1][ord(c) - 65] = {'v': v, 'sum': None}

    def get(self, r, c):
        cell = self.M[r - 1][ord(c) - 65]
        if not cell['sum']: return cell['v']
        return sum(self.get(*pos) * cell['sum'][pos] for pos in cell['sum'])

    def sum(self, r, c, strs):
        self.M[r - 1][ord(c) - 65]['sum'] = self.parse(strs)
        return self.get(r, c)

    def parse(self, strs):
        c = collections.Counter()
        for s in strs:
            s, e = s.split(':')[0], s.split(':')[1] if ':' in s else s
            for i in range(int(s[1:]), int(e[1:]) + 1):
                for j in range(ord(s[0]) - 64, ord(e[0]) - 64 + 1):
                    c[(i, chr(j + 64))] += 1
        return c
        


# Your Excel object will be instantiated and called as such:
# obj = Excel(H, W)
# obj.set(r,c,v)
# param_2 = obj.get(r,c)
# param_3 = obj.sum(r,c,strs)

相关文章

  • 8.28 - hard - 111

    631. Design Excel Sum Formula 这题目的描述真是茫茫长。。。

  • 8.28 - hard - 116

    656. Coin Path 竞赛的时候知道是DP问题,结果到最后也没做出来。。。今天脑子很木讷,感觉啥题都不会做...

  • 8.28 - hard - 117

    660. Remove 9 这道题就是搞成9进制就好了

  • 8.28 - hard - 118

    664. Strange Printer 记忆化搜索,感觉有时候能想到DP基本上就算是胜利了。

  • 8.28 - hard - 119

    668. Kth Smallest Number in Multiplication Table今天总结的比较麻木...

  • 8.28 - hard - 112

    632. Smallest Range 竞赛时候手写出来的题目,就不重新做了

  • 8.28 - hard - 113

    639. Decode Ways II 虽然竞赛时候这道题AC了,不过写的code 狗啃一般,找了一个清爽的答案,...

  • 8.28 - hard -115

    644. Maximum Average Subarray II 利用二分法

  • 8.28 - hard - 114

    642. Design Search Autocomplete System 这题要多做几遍,很好的设计题

  • 二叉树

    一、目录 DFS 144.二叉树的前序遍历 145.二叉树的后序遍历(hard) 104.二叉树的最大深度 111...

网友评论

      本文标题:8.28 - hard - 111

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