【題目描述】
假設一個表達式有英文字母(小寫)、運算符(+,—,?,/)和左右小(圓)括號構成,以“@
”作為表達式的結束符。請編寫一個程序檢查表達式中的左右圓括號是否匹配,若匹配,則返回“YES”;否則返回“NO”。表達式長度小于255,左圓括號少于20個。【輸入】
一行數據,即表達式。
【輸出】
一行,即“YES” 或“NO”。
【輸入樣例】
2*(x+y)/(1-x)@
【輸出樣例】
YES
【提示】
【樣例輸入2】
(25+x)*(a*(a+b+b)@
【樣例輸出2】
NO
【題解代碼】
#include<bits/stdc++.h>
using namespace std;int main()
{stack<char> stk;char c;while (cin >> c || c != '@'){if (c == '(')stk.push(c);else if (c == ')'){if (stk.empty()){cout << "NO";return 0;}else stk.pop();}}if (stk.empty()) cout << "YES";else cout << "NO";return 0;
}