用棧儲存左右括號的序號,若左右括號匹配,則出棧。每處理乙個字元就更新一次答案。
#include
#include
#include
#include
#include
using
namespace std;
intmain()
'&&s[st.
top()]
=='else st.
push
(i);
//否則將當前字元序號(從0開始)進棧
if(st.
empty()
) ans=
max(ans,i+1)
;//棧空則該字元及之前的字元都匹配
else ans=
max(ans,i-st.
top())
;//更新該字元序號到棧頂序號的距離,即為匹配長度
}printf
("%d"
,ans)
;return0;
}
AcWing 150 括號畫家
達達是一名漫畫家,她有乙個奇特的愛好,就是在紙上畫括號。這一天,剛剛起床的達達畫了一排括號序列,其中包含小括號 中括號 和大括號,總長度為n。這排隨意繪製的括號序列顯得雜亂無章,於是達達定義了什麼樣的括號序列是美觀的 1 空的括號序列是美觀的 2 若括號序列a是美觀的,則括號序列 a a 也是美觀的...
ACWing 150 括號畫家
problem 發現括號序列便想到棧。你一定做過下面這樣的題目 給乙個長度為 n 的括號序列,定義 這個當然是很好想了。對於每個字串,如果是左括號,就直接進棧,如果是右括號,判斷棧頂的左括號是否與之匹配,不是則不合法。最後判斷棧是否為空。考慮到原問題,我們發現,對於一端合法的子串行。如果將其單獨用乙...
AcWing 150 括號畫家(棧)
這一天,剛剛起床的達達畫了一排括號序列,其中包含小括號 中括號 和大括號,總長度為n。這排隨意繪製的括號序列顯得雜亂無章,於是達達定義了什麼樣的括號序列是美觀的 1 空的括號序列是美觀的 2 若括號序列a是美觀的,則括號序列 a a 也是美觀的 3 若括號序列a b都是美觀的,則括號序列ab也是美觀...