1353:表示式括號匹配(stack)
【題目描述】
假設一個表示式有英文字母(小寫)、運算子(+,—,*,/)和左右小(圓)括號構成,以“@”作為表示式的結束符。請編寫一個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回“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() { string s; cin>>s; stack<char>p; for(int i=0;s[i]!='@';i++) { if(s[i]=='(') p.push(s[i]); if(s[i]==')') { if(!p.empty()) { p.pop(); } else { cout<<"NO"<<endl; return 0; } } } if(p.empty()) cout<<"YES"<<endl; else cout<<"NO"<<endl; return 0; }
相關推薦
1353:表示式括號匹配(stack)
【題目描述】 假設一個表示式有英文字母(小寫)、運算子(+,—,*,/)和左右小(圓)括號構成,以“@”作為表示式的結束符。請編寫一個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回“YES”;否
1353表示式括號匹配(stack)
【題目描述】 假設一個表示式有英文字母(小寫)、運算子(+,—,*,/)和左右小(圓)括號構成,以“@”作為表示式的結束符。請編寫一個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回“YES”;否則返回“NO”。表示式長度小於255,左圓括號少於20個。 【輸入】 一行資料,即表示式。 【輸出】
棧的應用:表示式括號匹配檢測(C)
問題說明: 假設數學表示式中允許包含兩種括號:圓括號“()”和方括號“[]”,巢狀順序任意。 正確的巢狀模式:( [ ] ( ) )、[ ( [ ] [ ] ) ] 正確的表示式例:(a+b)[c*(d-e)] 錯誤的巢狀模式:[ ( ] )、( ( ) ] 比如,在處理表達式(A)
C++ P1739 表示式括號匹配
先上程式碼 #include<cstdio> #include<iostream> #include<cstring> using namespace std; ch
洛谷P1739 表示式括號匹配
題目背景 我竟然開始做這種題了我這種題之前竟然沒做! 說真的 , 這道題的資料範圍沒啥用啊! 題目描述 假設一個表示式有英文字母(小寫)、運算子(+,—,*,/)和左右小(圓)括號構成,以“@”作為表
表示式括號匹配
Description 假設一個算術表示式中可以包含三種括號:圓括號“( ”和“ )”、方括號“ [ ”和“ ] ”和花括號“{”和“}”,且這三種括號可按任意的次序巢狀使用(如:…[…{…}…[…]…]…[…]…(…)…)。編寫判別給定表示式中所含括號是否正
京東筆試題2:求括號匹配數目
題目描述: 描述 有一個合法的字串,合法是指左括號與右括號全部能配對,現在每次將這個序列第一個左括號刪去,在將任意一個右括號刪去,每次刪去後的序列必須合法,求有多少種方法 輸入 一個合法括號序列。 輸出 方案數。 樣例輸入 (
洛谷1739表示式括號匹配
題目 假設一個表示式有英文字母(小寫)、運算子(+,—,*,/)和左右小(圓)括號構成,以“@”作為表示式的結束符。請編寫一個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回“YES”;否則返回“NO”。表示式長度小於255,左圓括號少於20個。 題
洛谷 P1739 表示式括號匹配
P1739 表示式括號匹配 題目描述 假設一個表示式有英文字母(小寫)、運算子(+,—,*,/)和左右小(圓)括號構成,以“@”作為表示式的結束符。請編寫一個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回“YES”;否則返回“NO”。表示式長度小於255,左圓括號少於20個。
表示式括號匹配-洛谷
題目連結 #include<iostream> #include<cstdio> #include<queue> using namespace std; char a[10000]; int main() { queue<int>A; int
資料結構習題——7表示式括號匹配
time_limit 3000MS memory_limit 10000KB description 假設一個算術表示式中可以包含三種括號:圓括號“(”和“)”、
P1739 表示式括號匹配
/* 題型:棧的模擬 注意:另外定義一個flag,若此時棧以空則不符合題意 */ #include<cstdio> #include<iostream> #include<stack>//庫函式 using namespace
洛谷 P1739 表達式括號匹配【STL/stack/模擬】
stack clu b+ ack 編寫一個程序 輸入輸出格式 turn 是否 algorithm 題目描述 假設一個表達式有英文字母(小寫)、運算符(+,—,*,/)和左右小(圓)括號構成,以“@”作為表達式的結束符。請編寫一個程序檢查表達式中的左右圓括號是否匹配,若匹配,
leetcode678+括號匹配,stack使用掌握規
https://leetcode.com/problems/valid-parenthesis-string/description/ class Solution { public: bool checkValidString(string s) { stack&l
C語言_解決括號匹配問題和逆波蘭表示式求值為題
##1、括號匹配問題: 解決思路: void MatchBrackets (const char* str) { char* per = NULL; int i = 0; Stack s; assert (str != NULL); InitStack (&s);
資料結構實驗之棧與佇列四:括號匹配(SDUT 2134)
#include <bits/stdc++.h> using namespace std; typedef long long ll; char s[100]; char a[100]; int main() { int i,j,k,f,top,len; while(
算法題:括號匹配(小中大括號序列)
ack 等等 實現一個函數 har java turn 說明 [ ] lse 括號序列由( )[ ]{ }組成,不合法的括號序列由( { ) },[ } { ],等等。編程實現一個函數,檢查一個括號序列是否是合法的括號序列。 解法: 思路和“後綴表達式的求解”相似。我們借助
正則表示式:小括號、中括號、大括號的區別
一、小括號()、中括號[]、大括號的區別 1>. 小括號():匹配小括號內的字串,可以是一個,也可以是多個,常跟“|”(或)符號搭配使用,是多選結構的 示例1:string name = "way2014"; regex:(way|zgw) result:結果是可以匹配
python stack 括號匹配
LeetCode 20 括號匹配 先建立一個空棧,左邊括號用left表示,右邊括號用right表示,驗證s中的字元是否與left匹配,如果是則壓入棧中,判斷是否與右邊括號匹配,如果棧不為空並且左右括號不匹配則返回False,否則匹配彈出棧中元素,如果棧中的元素不為left或者right中
案例3.2:括號匹配的檢驗(c++實現/資料結構/棧的基本操作)
#include<iostream> #define MaxSize 100 #define OK 1 #define ERROR 0 using namespace std; typedef char ElemType; typedef int Status