📅  最后修改于: 2023-12-03 15:25:45.461000             🧑  作者: Mango
在编程过程中,我们经常需要处理字符串。有时候,我们需要去掉字符串最外面的括号,例如:
'(hello world)'
需要处理成:
'hello world'
下面是一个Python的实现:
def remove_outer_parentheses(s):
stack = []
result = ""
for c in s:
if c == '(':
if stack:
result += c
stack.append(c)
else:
stack.pop()
if stack:
result += c
return result
这个函数使用了栈来辅助处理字符串。首先我们初始化一个空栈stack
和一个空字符串result
,然后遍历字符串s
中的每个字符c
。如果c
是左括号(
,我们需要将其加入结果字符串result
中,同时将其压入栈stack
中。如果c
是右括号)
,我们需要将其弹出栈stack
,以便判断是否已经到了最外面一层括号。如果栈stack
非空,我们需要将c
加入结果字符串result
中。
最后,我们返回结果字符串result
,即可得到去掉最外面括号后的字符串。
s = '(hello world)'
result = remove_outer_parentheses(s)
print(result) # 'hello world'
以上代码输出结果为'hello world'
。
这个函数的时间复杂度是$O(n)$,其中$n$是字符串s
的长度。我们遍历了一次字符串s
,每次操作都是常数时间复杂度。因此,这个函数的性能非常优秀。