Okusanya.Damilola
BAN USERdef isPreOrder(nodelist):
"""
:type nodelist: List[Node]
:rtype: bool
"""
# Node = namedtuple('Node', ['parentid', 'nodeid'])
# Each node is written as parentid:nodeid
# Examples are written in this form:
# [parentid1:nodeid1, parentid2:nodeid2, parentid3:nodeid3, ...]
if nodelist[0].parentid == 0:
return False
parent_to_check = nodelist[0].parentid
for count in range(1, len(nodelist)):
if nodelist[count].nodeid == parent_to_check:
if nodelist[count + 1].parentid == parent_to_check:
return False
else:
return True
def expand(str):
from collections import deque
char_read_list = deque()
char_multiply_list = deque()
for char in str:
if char == ']':
current_char = char_read_list.pop()
while current_char.isdigit() == False:
if current_char != '[':
char_multiply_list.appendleft(current_char)
current_char = char_read_list.pop()
if current_char.isdigit() == True:
num_to_repeat = int(current_char)
l = list(char_multiply_list)
l[:] = l * num_to_repeat
for item in l:
char_read_list.append(item)
char_multiply_list.clear()
else:
char_read_list.append(char)
str_to_return = "".join(list(char_read_list))
return str_to_return
Sorry my earlier answer did not cotain explanations. This is the improved answer.
- Okusanya.Damilola January 11, 2018