面试题整理12 求字符串括号最大深度子串
生活随笔
收集整理的這篇文章主要介紹了
面试题整理12 求字符串括号最大深度子串
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目:求一個(gè)表達(dá)式字符串中括號(hào)層次最深的第一個(gè)表達(dá)式,如表達(dá)式
"a+b+((c+d)+(e+f))",則結(jié)果為”c+d"。
分析: 一般算式會(huì)讓人想起用棧分別存儲(chǔ)操作數(shù)和符號(hào)值,但是本題目不適用,我寫(xiě)的代碼中采用了類(lèi)似于求最大連續(xù)子數(shù)組的解法,設(shè)置變量一個(gè)記錄當(dāng)前的括號(hào)深度,一個(gè)記錄最大的括號(hào)深度,從字符串頭開(kāi)始遍歷,當(dāng)遍歷到字符‘('時(shí),當(dāng)前括號(hào)深度加1,當(dāng)遍歷到字符‘)'時(shí),當(dāng)前括號(hào)深度減1,;當(dāng)當(dāng)前括號(hào)深度大于最大括號(hào)深度時(shí),將當(dāng)前括號(hào)深度賦值給最大括號(hào)深度;當(dāng)當(dāng)前括號(hào)深度小于0時(shí),將當(dāng)前括號(hào)深度置0。算法復(fù)雜度O(n)。
代碼如下:如有錯(cuò)誤,請(qǐng)大家指正。
總結(jié)
以上是生活随笔為你收集整理的面试题整理12 求字符串括号最大深度子串的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ntfs 格式在linux下挂载
- 下一篇: 面试题整理13 合并排序链表去重