AcWing 150 括號畫家

2021-10-25 06:39:13 字數 747 閱讀 4610

達達是一名漫畫家,她有乙個奇特的愛好,就是在紙上畫括號。

這一天,剛剛起床的達達畫了一排括號序列,其中包含小括號( )、中括號[ ]和大括號,總長度為n。

這排隨意繪製的括號序列顯得雜亂無章,於是達達定義了什麼樣的括號序列是美觀的:

(1) 空的括號序列是美觀的;

(2) 若括號序列a是美觀的,則括號序列 (a)、[a]、 也是美觀的;

(3) 若括號序列a、b都是美觀的,則括號序列ab也是美觀的。

例如 (){} 是美觀的括號序列,而)(]( 則不是。

現在達達想在她繪製的括號序列中,找出其中連續的一段,滿足這段子序列是美觀的,並且長度盡大。

你能幫幫她嗎?

輸入格式

輸入一行由括號組成的字串。

輸出格式

輸出乙個整數,表示最長的美觀的子段的長度。

資料範圍

字串長度不超過100000。

輸入樣例:

(})})})[)])['

) st.

pop();

else st.

push

(i);

}else

if(st.

size()

) res =

max(res, i - st.

top())

;else res =

max(res, i +1)

;}cout << res << endl;

return0;

}

acwing 150 括號畫家

用棧儲存左右括號的序號,若左右括號匹配,則出棧。每處理乙個字元就更新一次答案。include include include include include using namespace std intmain s st.top else st.push i 否則將當前字元序號 從0開始 進棧 i...

ACWing 150 括號畫家

problem 發現括號序列便想到棧。你一定做過下面這樣的題目 給乙個長度為 n 的括號序列,定義 這個當然是很好想了。對於每個字串,如果是左括號,就直接進棧,如果是右括號,判斷棧頂的左括號是否與之匹配,不是則不合法。最後判斷棧是否為空。考慮到原問題,我們發現,對於一端合法的子串行。如果將其單獨用乙...

AcWing 150 括號畫家(棧)

這一天,剛剛起床的達達畫了一排括號序列,其中包含小括號 中括號 和大括號,總長度為n。這排隨意繪製的括號序列顯得雜亂無章,於是達達定義了什麼樣的括號序列是美觀的 1 空的括號序列是美觀的 2 若括號序列a是美觀的,則括號序列 a a 也是美觀的 3 若括號序列a b都是美觀的,則括號序列ab也是美觀...