括號匹配問題

2021-09-05 08:40:40 字數 824 閱讀 7243

括號匹配問題是比較經典的問題。我們可以使用棧這樣的資料結構來解決。我們掃瞄字串壓將『(』入棧中,然後如果是』)』我們則可以從棧中彈出乙個』('來與之匹配,這樣就可以解決並保證最近的兩個括號相匹配了,根據題目要求我們在記錄下匹配的位置即可。

因為題目中說答案不唯一就是說位置可以換一下。

比如樣例一輸出

1 42 3

如果我們輸出

2 31 4

這樣子也是可以的。

但是你不能說兩個都沒匹配上,這就不行了。

源**:

#include

#include

#include

#include

using

namespace std;

char s[

50005];

int ans[

50005];

stack<

int> s1;

bool f =

true

;int

main()

else

else}}

if(!s1.

empty()

)if(f)}

}else

return0;

}

大家可以關注一下

www.lyxueit.com.

括號匹配問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入第一行輸入乙個數n 0輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 no noyes 基本演算法思...

括號匹配問題

假設表示式中包含三種括號 圓括號 方括號和花括號,它們可以相互巢狀,如 等均為正確的格式,而等為不正確的格式。以下為演算法程式 括號匹配問題 include include int main char ch while ch getchar eof count 0 break case if cou...

括號匹配問題

問題描述 假設表示式中允許包含兩種括號 圓括號與方括號,其巢狀的順序隨意。如 或 等為正確的匹配 而 或者 或者 均為錯誤的匹配。現要求編寫程式,判斷輸入的一行括號是否是匹配的,如果是匹配的,輸出yes,否則輸出no。解題思路 檢驗括號是否是匹配的方法可以用 期待的急迫程度 這個概念來描述。例如考慮...