NYOJ 2 括號配對問題

2021-06-02 23:21:34 字數 1448 閱讀 3175

第一次用棧來寫的**,早上隊長講了一下,了解了下基礎,覺得c++的棧可以直接呼叫,c的棧卻要自己定義,還是該花時間好好看c++.這是用c寫的:

**:

#includestruct stack 

;void initstack(stack& a)//**構造乙個空棧**//

void push(stack& a,char item)//**往棧裡面插入乙個新元素**//

void pop(stack& a)//**刪除棧頂元素並返回其值**//

int main()

else if(a.str[a.top]=='('&&ch==')')

else

}} if(a.top==-1)//**如果棧為空說明括號配對完成**//

else

}return 0;

}

c++的stl:

#include#include#include#includeusing namespace std;

int main()

else

else

else if(ch==')'&&s.top()=='(')

else}}

} if(s.empty())//**判斷棧是否為空**//

else

}return 0;

}

再貼一段:

#includestruct stack

s;void push(char elem)//**往棧裡面插入乙個新元素**//

void pop()//**刪除棧頂元素並返回其值**//

int main()

else

}} if(s.pos==-1)

else

}return 0;

}

還有一段用陣列做的,其實思想都一樣。

#include int main()

else if(a==']'&&top>0&&str[top-1]=='[')

else

}if(top==0)

else

}return 0;

}

最後一段是比較完美的了:

#include#include#includeusing namespace std;

int main()

{ int n,len,i;

char str[10001];

scanf("%d",&n);

getchar();

while(n--)

{ stacks;

scanf("%s",str);

len=strlen(str);

for(i=0;i

NYOJ 2 括號配對問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入第一行輸入乙個數n 0輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 no noyesv.back ...

NYOJ 2 括號配對問題

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入第一行輸入乙個數n 0輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 no noyes 題解 括號匹...

NYOJ 2 括號配對問題

描述 現在,有一行括號序列,請你檢查這行括號是否配對。輸入 第一行輸入乙個數n 0輸出 每組輸入資料的輸出佔一行,如果該字串中所含的括號是配對的,則輸出yes,如果不配對則輸出no 樣例輸入 3 樣例輸出 no noyes include include include include includ...