蒜頭君在紙上寫了乙個串,只包含'('
和')'
。乙個'('
能唯一匹配乙個')'
,但是乙個匹配的'('
必須出現在')'
之前。請判斷蒜頭君寫的字串能否括號完全匹配,如果能,輸出配對的括號的位置(匹配的括號不可以交叉,只能巢狀)。
一行輸入乙個字串只含有'('
和')'
,輸入的字串長度不大於 50000
。如果輸入括號不能匹配,輸出一行"no"
,否則輸出一行"yes"
,接下裡若干行每行輸出 2
個整數,用空格隔開,表示所有匹配對的括號的位置(下標從 1
開始)。你可以按照任意順序輸出。
本題答案不唯一,符合要求的答案均正確
樣例輸入1
(())
樣例輸出1
yes1 42 3
樣例輸入2
()()
樣例輸出2
yes1 23 4
#includeusing namespace std;
struct node f[30000];
int main(){
string s;
cin>>s;
int flag=1,k=0;//flag==1正確匹配
stackst;
for(int i=0;i
棧括號匹配
input 輸入包括多組測試資料,每組資料是乙個字串,字串只包含 等字元。output 對於每組資料輸出 yes 表示當前字串中的括號是匹配的,否則輸出 no 不包括引號 sampleinput sampleoutput yes no題解 利用棧 includeusing namespace std...
棧 括號匹配
括號匹配,棧的經典題目,將左括號入站,然後遇到右括號就詢問棧頂是不是與之相匹配的左括號,如果是,出棧,不是,匹配失敗。注意這個題目是多組輸入,而且包含空格,所以需要用 gets讀入。include include include include using namespace std typedef...
棧 括號匹配
include include define max size 1024 define seqstack true 1 define seqstack false 0 掃瞄字串,如果碰到左括號,直接入棧 如果碰到右括號,從棧頂彈出括號,判斷是否是左括號,如果是則匹配成功 陣列模擬棧的順序儲存 typ...