python-为什么代码检测到最外面的代码)

python-为什么代码检测到最外面的代码),第1张

概述这里的问题要求我反转()中的任何字符串.假设我的字符串为“ foo(bar(baz))blim”,则返回的结果为“ foobazrabblim”.有人帮助我完成了编码过程,但是,我仍然不明白为什么代码首先会检测到外部.def reverseInParentheses(inputString): n=len(inputString) for i

这里的问题要求我反转()中的任何字符串.假设我的字符串为“ foo(bar(baz))blim”,则返回的结果为“ foobazrabblim”.有人帮助我完成了编码过程,但是,我仍然不明白为什么代码首先会检测到外部.

def reverseInParentheses(inputString):    n=len(inputString)    for i in range(n):        if inputString[i] == "(":            start=i                  if inputString[i] == ")":            end=i                      return reverseInParentheses(inputString[:start]+inputString[start+1:end][::-1]+inputString[end+1:n])        return inputString

据我了解,假设我们有“ foo(bar(baz))blim”.因此,python检测到start = 3,end = 11.然后我们将函数称为reverseinparetheses,我们将得到“ foozab(rab)blim”.再次浏览该功能,新的开始= 6,结束= 10.最后,我们有“ foozabbarblim”,而不是我们期望的“ foobazrabblim”.我想知道程序如何首先检测外部“)”?最佳答案它没有检测到最外面的括号.它找到最里面的那对,颠倒内部,然后重复直到不再有括号.

if inputString[i] == ")":    ....

当您击中第一个’)’时,此块会触发,并且在该阶段的起始位置将是'(‘,打开第一个’)’.这是最里面的一对.

然后您有:

return reverseInParentheses(inputString[:start]+inputString[start+1:end][::-1]+inputString[end+1:n])

这将内容从头到尾反转(最里面的对),然后调用该函数,从而切断了for循环的其余部分.

如果您实际上在每一步都打印了inputString,则会得到:

foo(bar(baz))blimfoo(barzab)blimfoobazrabblim

最里面的括号正被颠倒. 总结

以上是内存溢出为你收集整理的python-为什么代码检测到最外面的代码) 全部内容,希望文章能够帮你解决python-为什么代码检测到最外面的代码) 所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/langs/1199460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存