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