題目描述
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 剩下的,如果有成對的,繼續替換 ...