8.28 - hard - 111

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)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,002评论 25 709
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,789评论 0 33
  • 郊区。深夜。 某军事基地里灯火通明,所有的人都坚守在自己工作岗位上,等待着指令。 三天前,星际监测中心检测到一颗巨...
    一一空白一一阅读 278评论 4 1
  • 历史不可怕,可怕的是忘记 2017年12月23日 星期六 阴 这算是我最迫不及待想要记录下来的瞬间了。就在刚才,看...
    铁扇公主de牛魔王阅读 191评论 0 1
  • 同治十一年九月,紫禁城张灯结彩,门庭若市。同治皇帝载淳满面春风,乐不可支。17岁的小皇帝总算熬出了头,他结婚了。 ...
    骑着野猪去刚果阅读 1,181评论 4 7