到目前为止我已经做到了。我困在递归上了。我不知道如何前进,加入和逆转等等
def callrecursion(s):
a=s.index('(')
z=len(s) - string[::-1].index(')') -1
newStr=s[a+1:z]
# Something is missing here i cant figure it out
print(newStr)
return newStr
def reverseParentheses(s):
if '(' in s:
return reverseParentheses(callrecursion(s))
print('wabba labba dub dub')
else:
return s
string='a(bcdefghijkl(mno)p)q'
reverseParentheses(string)
预期输出:“apmnolkjihgfedcbq”
这样做的目的是尽可能长时间地“向内”操作(其中“向内”甚至不意味着“嵌套”,只要有任何左括号,它就会一直进行下去),因此最内层的对将首先翻转,然后在递归返回时翻转其余的对。这种方式“并行”括号似乎也能工作,而“第一个左括号”和“最后一个结束括号”的简单配对并不能很好地处理它们。或者至少我是这么想的。
顺便说一句:递归只是
rfind
这里的一个复杂的替代: ^{pr2}$(。。。TBH:现在我尝试了,递归魔法在字符串中的空括号
()
上消失,而这个方法有效)您的代码中有一些问题,并且缺少很多逻辑。这将调整代码并生成所需的输出:
相关问题 更多 >
编程相关推荐