lintcode練習 528 攤平巢狀的列表

2021-08-22 03:25:56 字數 1637 閱讀 3631

給你乙個巢狀的列表,實現乙個迭代器將其攤平。

乙個列表的每個元素可能是整數或者乙個列表。

you don't need to implement the remove method.

您在真實的面試中是否遇到過這個題?  是

給出列表[[1,1],2,[1,1]],經過迭代器之後返回[1,1,2,1,1]

給出列表[1,[4,[6]]],經過迭代器之後返回[1,4,6]

實現**:

對輸出元素進行判斷,如果是list就展開

"""this is the inte***ce that allows for creating nested lists.

you should not implement it, or speculate about its implementation

class nestedinteger(object):

def isinteger(self):

# @return true if this nestedinteger holds a single integer,

# rather than a nested list.

def getinteger(self):

# @return the single integer that this nestedinteger holds,

# if it holds a single integer

# return none if this nestedinteger holds a nested list

def getlist(self):

# @return the nested list that this nestedinteger holds,

# if it holds a nested list

# return none if this nestedinteger holds a single integer

"""class nestediterator(object):

def __init__(self, nestedlist):

# initialize your data structure here.

self.stack = nestedlist[::-1]

# @return the next element in the iteration

def next(self):

# write your code here

return self.stack.pop().getinteger()

# @return true if the iteration has more element or false

def hasnext(self):

# write your code here

while self.stack:

top = self.stack[-1]

if top.isinteger():

return true

self.stack = self.stack[:-1] + top.getlist()[::-1]

return false

lintcode528 攤平巢狀的列表

給你乙個巢狀的列表,實現乙個迭代器將其攤平。乙個列表的每個元素可能是整數或者乙個列表。樣例 樣例1輸入 list 1,1 2,1,1 輸出 1 1,2 1,1 樣例2 輸入 list 1 4,6 輸出 1 4,6 注意事項 你不需要實現刪除方法 this is the inte ce that al...

LintCode 攤平巢狀的列表

給你乙個巢狀的列表,實現乙個迭代器將其攤平。乙個列表的每個元素可能是整數或者乙個列表。您在真實的面試中是否遇到過這個題?yes 樣例給出列表 1,1 2,1,1 經過迭代器之後返回 1,1,2,1,1 給出列表 1,4,6 經過迭代器之後返回 1,4,6 標籤 遞迴 棧資料結構設計谷歌 this i...

lintcode練習 490 棧集

假如你有一堆的盤子。如果你堆得太高的話,就可能會垮掉。所以,在真實的生活中,如果盤子疊到一定高度,你會重新開始堆新的一堆盤子。實現這樣的乙個資料結構,我們稱之為棧集,來模擬這個過程。這個棧集包含若干個棧 可以理解為若干堆的盤子 如果乙個棧滿了,就需要新建乙個棧來裝新加入的項。你需要實現棧集的兩個方法...