该问题的日记的第50个是:1021。删除最外的,简单的
首先,这个问题有些尴尬,我们需要冷静下来阅读和查看,必须非常简单
仔细观察这个问题实际上非常简单。实际上,由于标题与标题相同,请删除最外面的括号
但是这里需要清楚的是删除原始单词的最外层括号
仔细观察,无论根据标题的含义,我们知道必须包装原始单词。我们只需要找到一个完整的括号
看到括号,您是否想到使用堆栈进行处理?
通过遍历堆栈时给出的字符串,以便我们可以识别它是一个括号
但是我们不仅必须确定它是否是完整的括号,还需要提取原始单词
因此,我们可以这么认为,我们在冰箱中采取了多少个步骤?
那么我们可以为这个问题做到这一点吗?
如图所示:
如果您提取原始单词,我们可以遵循上述堆栈的思考,并使用堆栈来表示我们需要识别的原始边界,并使用Respana来存储实际的原始边界
如何找到包含原语的边界?
例如,当我们遍历图中的字符串时,标识是将堆栈输入堆栈,并识别它以弹出堆栈顶部的字符
此外,当我们认识到堆栈不是空的时,这意味着目前我们正在遍历原始内容,然后将此部分添加到RES中。
根据上述逻辑和分析,我们可以转化为以下代码
代码需要注意,当我们必须检查堆栈不是空的时,我们将看到当前数据作为原始数据的一部分,并将其添加到RES的分辨率中
编码如下:
这里的时间复杂性相对清楚。我们只能到达一次,因此时间复杂性为O(n),空间复杂性也为O(n)。因为我们介绍了堆栈空间,所以这里空间的最大长度将是空间的最大长度。
原始地址:1021。删除最外层的支架
今天在这里。如果有偏差,请询问斧头
朋友,您的支持和鼓励是我坚持的动力
好吧,这次在这里
技术是开放的,我们的心态应该是开放的。改变太阳的变化,并努力向前迈进。
我有点魔鬼,尼兹(Nezha),欢迎喜欢这个系列,下次再见?
原始:https://juejin.cn/post/710299239666905381