括號匹配(兩種演算法的完成)

2022-06-30 14:27:11 字數 870 閱讀 2815

題目描述

pipi給你乙個合法的括號序列,希望跟你按左括號下標遞增順序給出每對括號在序列中的下標。(下標從1開始)

輸入多組資料

第一行包括乙個只包含'(',')'的字串,保證輸入的括號匹配序列合法,長度不超過100000

輸出按左括號下標遞增順序給出每對括號在序列中的下標。

樣例輸入 copy

(())()()

樣例輸出 copy

1 42 3

5 67 8

提示注意輸出時的順序哦~

乙個已知括號組的完成,作為乙個大函式,只要在原來陣列基礎上找到乙個個括號組,再處理即可,可是時間複雜度比較高,計算時間比較長。雖然可以實現但時間複雜度過不了

若想切題,這裡可以採用資料結構棧。

其實左括號就是入棧,右括號就是出棧,不過不能直接彈出,因為輸出有要求,必須按照左括號的大小,所以要再用乙個陣列接住右括號作為序號,這樣就完成排序。

#include void do_one(char a,int head,int leap) 

; for(int i=0;i下面用棧實現,**比較簡單

#include #define stackdepth 100000

int stack[stackdepth];

int top=0;

void push(int data)

int pop()

int main()

; int len1 = strlen(str);

for(int i=0;ielse;}

for(int i=0;i<100000;i++)

}}

return 0;

}

KMP模式匹配演算法 兩種

具體可分為 字首 prefix 法和next陣列法 1.思路 1 求出字首 prefix 表 2 依照字首 prefix 表來幫助匹配查詢 所以,找出字首 prefix 表是最核心的步驟 2.方法 給出兩種求字首 prefix 表的方法,這兩種方法的核心大致相當,都利用回溯的思想 本例中用指標j進行...

串的兩種模式匹配演算法

靜時亦覺意思好,才遇事便不同,如何?是徒知靜養而不用克己工夫也。如此,臨事便要傾倒。人須在事上磨,方立得住,方能 靜亦定,動亦定。此時正宜用功。若此時放過,閒時講學何用?人正要在此等時磨鍊。子串的定位操作 串的模式匹配 挨個遍歷,例如在asdfghjkl中尋找dfg,需要將dfg與asdfghjkl...

有效括號的兩種思路

有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。一 陣列 1 空字串可被認為是有效字串,單獨判斷 3 字串的長度必須為偶數,否則不是有效括號 2 利用替換的思想 1 如果 成對出現,用 替換,相當於刪除 2 剩下的,如果有成對的,繼續替換 ...