【題目描述】
假設一個表達式有英文字母(小寫)、運算符(+,—,∗,/+,—,∗,/)和左右小(圓)括號構成,以“@@”作爲表達式的結束符。請編寫一個程序檢查表達式中的左右圓括號是否匹配,若匹配,則返回“YESYES”;否則返回“NONO”。表達式長度小於255255,左圓括號少於2020個。
【輸入】
一行數據,即表達式。
【輸出】
一行,即“YESYES” 或“NONO”。
【輸入樣例】
2*(x+y)/(1-x)@
【輸出樣例】
YES
【提示】
【樣例輸入2】
(25+x)*(a*(a+b+b)@
【樣例輸出2】
NO
#include <iostream> using namespace std; int main() { char ch = 0; int cnt = 0; while (ch != '@') { // cin >> ch; // none space ch = cin.get(); switch (ch) { case '(': cnt++; break; case ')': cnt--; if (cnt < 0) { ch = '@'; } break; case '@': break; } } if (cnt == 0) { cout << "YES"; } else { cout << "NO"; } return 0; }