在Python中反转括号包含的子字符串的程序
假设我们有一个包含字母和括号“(”和“)”的小写字符串s。我们需要以递归的方式反转每个括号内的字符串并返回结果字符串。
因此,如果输入为s =“ back(aps)ce”,则输出将为“ backspace”。
为解决此问题,我们将执行以下步骤:
- 定义一个函数trav()。这将获取s,dir,start,close:= close,ans:= ans
- end:=“(”(如果dir与-1相同,则为-1),否则为“)”
-
other:=“(”(如果end与“)”相同,则为“)”,否则为“(”)
-
当启动时小于s的大小,并且s [start]与结束不相同时,执行以下操作:
- 如果s [start]与other相同,则
-
trav(s,-dir,close [other,start] – dir )
-
start:= close [other,start] + dir
-
否则,
-
在答案末尾插入s [start]
-
start:= start + dir
-
从主函数作如下操作−
-
答案:=新列表
-
close:=使用键“)”和“(”的新映射,最初值为两个空映射
-
堆栈:=新列表
-
对于s中的每个索引I和值c,执行以下操作
- 如果c等于“(”,则
- 将i推入栈中
- 否则,当c等于“)”时,则
- o:=堆栈顶部,然后从堆栈中弹出
-
close [ )” ,i ]:= o
-
close [ (” ,o ]:= i
- 如果c等于“(”,则
-
trav(s,1,0)
-
返回以空字符串连接的答案
让我们看一下以下实现,以便更好地理解−