題目描述
乙個由小括號組成的字串可以被稱為乙個括號序列。但乙個括號序列可能並不滿足括號匹配的要求。因此,我們可以進一步將滿足括號匹配的括號序列成為「標準的括號序列。例如字串")((())"是乙個括號序列但不是標準的括號序列,而字串"()(())"是乙個標準的括號序列。
給定乙個括號序列,你需要對求出:這個括號序列的所有不同的子串中,有多少個是標準的括號序列?
乙個括號序列的子串指的是這個序列從某個位置起始、到某個位置截止的子字串。如果兩個子串擁有不同的起始位置或截止位置,那麼它們就被認為是括號序列的不同的子串。
輸入包括一行乙個字串,為給定的括號序列。
輸出輸出乙個整數,為標準的括號序列的子串的個數。
#include #define ll long longusing
namespace
std;
char s[1000005
];stack
int,int> >ps;
intpre,ant;
intmain()
else
}else
}else
}printf(
"%d\n
",ant);
return0;
}
堆疊 Lintcode 有效的括號序列
描述 給定乙個字串所表示的括號序列,包含以下字元 and 判定是否是有效的括號序列。樣例 括號必須依照 順序表示,是有效的括號,但 則是無效的括號。也是有效的!這道題讓我們驗證輸入的字串是否為括號字串,包括大括號,中括號和小括號。這裡我們需要用乙個棧,我們開始遍歷輸入字串,如果當前字元為左半邊括號時...
DS堆疊 括號匹配
問題 c ds堆疊 括號匹配 時間限制 1 sec 記憶體限制 128 mb 提交 396 解決 343 提交 狀態 討論版 題目描述 處理表示式過程中需要對括號匹配進行檢驗,括號匹配包括三種 和 和 例如表示式中包含括號如下 1234 5678 9101112 從上例可以看出第1和第2個括號匹配,...
判斷括號是否匹配 堆疊
1.有效的括號 給定乙個只包括 的字串,判斷字串是否有效。有效字串需滿足 左括號必須用相同型別的右括號閉合。左括號必須以正確的順序閉合。注意空字串可被認為是有效字串。示例 1 輸入 輸出 true 示例 2 輸入 輸出 true 示例 3 輸入 輸出 false 示例 4 輸入 輸出 false 示...