📜  打印去掉最外面的括号后得到的字符串(1)

📅  最后修改于: 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,每次操作都是常数时间复杂度。因此,这个函数的性能非常优秀。