LeetCode #1656. Design an Ordered Stream

题目

1656. Design an Ordered Stream


解题方法

构造函数里面设置一个stream列表初始化为空值,长度为n,再初始化ptr=0。插入操作直接把stream[id-1]设置为插入的值,然后把ptr从当前位置向后移动并不断把元素加进返回值rat中即可。
时间复杂度:O(n)
空间复杂度:O(n)


代码

class OrderedStream:
    
    def __init__(self, n: int):
        self.stream = ["" for _ in range(n)]
        self.ptr = 0

    def insert(self, id: int, value: str) -> List[str]:
        self.stream[id-1] = value
        rat = []
        while self.ptr < len(self.stream) and self.stream[self.ptr] != "":
            rat.append(self.stream[self.ptr])
            self.ptr += 1
        return rat
posted @ 2020-12-04 14:24  老鼠司令  阅读(282)  评论(0编辑  收藏  举报