# """
# This is the interface 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.
# :rtype bool
# """
#
# 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
# :rtype int
# """
#
# 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
# :rtype List[NestedInteger]
# """
class NestedIterator(object):
def __init__(self, nestedList):
"""
Initialize your data structure here.
:type nestedList: List[NestedInteger]
"""
strs = ''.join(str(nestedList))
lens = len(strs)
arrays = []
index1 = 0
index2 = 0
while index2 != lens:
if not strs[index1].isdigit():
index1 += 1
index2 += 1
else:
if not strs[index2].isdigit():
arrays.append(strs[index1:index2])
index1 = index2
elif strs[index2].isdigit():
index2 += 1
self.nestedList = arrays
self.index = 0
def next(self):
"""
:rtype: int
"""
key = self.nestedList[self.index]
self.index += 1
return int(key)
def hasNext(self):
"""
:rtype: bool
"""
return self.index != len(self.nestedList)