hecy 又接了個新任務:be 處理。
be 中有一類被稱為 gbe。
以下是 gbe 的定義:
空表示式是 gbe
如果表示式 a 是 gbe,則 [a] 與 (a) 都是 gbe
如果 a 與 b 都是 gbe,那麼 ab 是 gbe
下面給出乙個 be,求至少新增多少字元能使這個 be 成為 gbe。
注意:be 是乙個僅由(、)、[、]四種字元中的若干種構成的字串。
輸入格式
輸入僅一行,為字串 be。
輸出格式
輸出僅乙個整數,表示增加的最少字元數。
資料範圍
對於所有輸入字串,其長度小於100。
輸入樣例:
輸出樣例:
區間dp問題先列舉區間長度 ,再列舉左右 i j
#include#include#include#includeusing namespace std;
const int n = 110;
int inf = 1e8;
int f[n][n];
int n;
bool is_match(char l,char r)
int main()
cout << f[0][n - 1] << endl;
return 0;
}
括號配對 區間DP 回文子串
遞迴定義一組字元匹配模式 增加幾個字元滿足這個匹配。新增多少個字元,可以轉化為n 回文子串 這裡的回文子串需要重新定義 aaaabbbb a符合定義,b也符合定義的話 最長子串,我們列舉中間端點取最大值。abba 這種情況,我們判斷 l,r match l,r 是不是匹配,匹配的話f l 1,r 1...
括號配對問題
原文 1.括號匹配的四種可能性 左右括號配對次序不正確 右括號多於左括號 左括號多於右括號 左右括號匹配正確 2.演算法思想 1.順序掃瞄算數表示式 表現為乙個字串 當遇到三種型別的左括號時候讓該括號進棧 2.當掃瞄到某一種型別的右括號時,比較當前棧頂元素是否與之匹配,若匹配,退棧繼續判斷 3.若當...
括號配對問題
描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入 第一行輸入乙個數n 0 n 100 表示有n組測試資料。後面的n行輸入多組輸入資料,每組輸入資料都是乙個字串s s的長度小於10000,且s不是空串 測試資料組數少於5組。資料保證s中只含有 四種字元 輸出 每組輸入資料的輸出佔一行,如果該...