給你乙個巢狀的列表,實現乙個迭代器將其攤平。
乙個列表的每個元素可能是整數或者乙個列表。
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 棧集
假如你有一堆的盤子。如果你堆得太高的話,就可能會垮掉。所以,在真實的生活中,如果盤子疊到一定高度,你會重新開始堆新的一堆盤子。實現這樣的乙個資料結構,我們稱之為棧集,來模擬這個過程。這個棧集包含若干個棧 可以理解為若干堆的盤子 如果乙個棧滿了,就需要新建乙個棧來裝新加入的項。你需要實現棧集的兩個方法...