@@ -18,7 +18,7 @@ def __init__(self, start, end, val, left=None, right=None):
1818 self .right = right
1919
2020 def __str__ (self ):
21- return ' val: %s, start: %s, end: %s' % (self .val , self .start , self .end )
21+ return " val: %s, start: %s, end: %s" % (self .val , self .start , self .end )
2222
2323
2424class SegmentTree (object ):
@@ -131,6 +131,7 @@ class SegmentTree(object):
131131 >>>
132132
133133 """
134+
134135 def __init__ (self , collection : Sequence , function ):
135136 self .collection = collection
136137 self .fn = function
@@ -197,7 +198,10 @@ def _query_range(self, node, i, j):
197198 return self ._query_range (node .left , i , j )
198199 else :
199200 # range in left child tree and right child tree
200- return self .fn (self ._query_range (node .left , i , node .mid ), self ._query_range (node .right , node .mid + 1 , j ))
201+ return self .fn (
202+ self ._query_range (node .left , i , node .mid ),
203+ self ._query_range (node .right , node .mid + 1 , j ),
204+ )
201205 else :
202206 # range in right child tree
203207 return self ._query_range (node .right , i , j )
@@ -217,10 +221,11 @@ def traverse(self):
217221 queue .put (node .right )
218222
219223
220- if __name__ == ' __main__' :
224+ if __name__ == " __main__" :
221225 import operator
226+
222227 for fn in [operator .add , max , min ]:
223- print ('*' * 50 )
228+ print ("*" * 50 )
224229 arr = SegmentTree ([2 , 1 , 5 , 3 , 4 ], fn )
225230 for node in arr .traverse ():
226231 print (node )
0 commit comments