第一次用棧來寫的**,早上隊長講了一下,了解了下基礎,覺得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...