[Tutor] bracket issue
Palm Tree
timeofsands at gmail.com
Fri Apr 14 22:17:29 EDT 2017
hi all. i'm trying to write a simple program. i'm using python 3.4
let us say i have
s="2*3+3(8-4(5+6+9))+2+3+3(4/4)"
i want to find expression enclosed in brackets.
i want outputs to be like:
(8-4(5+6+9))
(5+6+9)
(4/4)
i've tried where >>>> denotes an indentation level :
#first part
sbracket=[ ]
ebracket=[ ]
for i in range(len(s)):
>>>>global sbracket
>>>>global ebracket
>>>>if f[i] == "(":
>>>>>>>>sbracket.append(i)
>>>>elif f[i] == ")":
>>>>>>>>ebracket.append(i)
#second part
for i in range(len(sbracket)):
>>>>print(f[sbracket[i]:ebracket[i]])
however, the above code works well as long as there are no nested brackets
like
s="(1+2)(2+3)"
but fails as soon as
s="((3+2))2"
prior to that i wrote it like:
for i in range(len(f)):
>>>>if f[i] == "(":
>>>>>>>>sbracket.append(i)
>>>>>>>>for x in range(len(f)):
>>>>>>>>>>>>if f[i+x]==")":
>>>>>>>>>>>>>>>>ebracket.append(x)
>>>>>>>>>>>>>>>>break
but that too failed to output correctly
note : i'd like an answer involving recursion if possible
More information about the Tutor
mailing list