輸入乙個含有括號的四則運算表示式,要求去掉可能含有的多餘的括號,結果要保持原表示式中變數和運算子的相對位置不變,且與原表示式等價
,不要求化簡。另外不考慮
'+' '-'
用作正負號的情況,即輸入表示式不會出現
(+a)
或(-a)
的情形。
第1行:乙個字串表示要整理的表示式
第1行:整理後的結果
copy
(如果複製到控制台無換行,可以先貼上到文字編輯器,再複製)
((a+b)*f)-(i/j)
(a+b)*f-i/j
輸入:1. a+(b+c)-d
2. a+b/(c+d)
3. (a*b)+c/d
4. ((a+b)*f)-(i/j)
輸出:1. a+b+c-d
2. a+b/(c+d)
3. a*b+c/d
4. (a+b)*f-i/j
乙個半小時的青春年華,因此題,付諸東流/(ㄒoㄒ)/~~、
不要說其中的心路歷程,直接說這道題吧
首先,在輸入合法的情況下,括號兩旁一定是運算符號,括號拆不拆取決於括號中等級最小的運算子是否不小於兩邊符號
小心!a-(b-c)之類的不能拆!!
所以,將每個括號中等級最小的符號儲存下來,進行比較後在決定最終是否刪除
不說了,**如下:
#include#include#include#includeusing namespace std;
struct illh[50001];
char a[100001];
int l,g;
int work(int s)
if(a[i]=='+')h[x].mi=min(h[x].mi,1);
if(a[i]=='-')h[x].mi=min(h[x].mi,2);
if(a[i]=='*')h[x].mi=min(h[x].mi,3);
if(a[i]=='/')h[x].mi=min(h[x].mi,4);
}h[x].r=l;
return i;
}void del(int x)
int main()
}for(i=2;i<=g;i++)
if(h[i].no)
a[h[i].l]=a[h[i].r]=0;
for(i=1;i<=l;i++)
if(a[i])
printf("%c",a[i]);
}
python書中練習題 python練習題
1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...
python的練習題 Python練習題
1 使用while迴圈輸入1 2 3 4 5 6 8 9 10 i 0while i 10 i i 1 if i 7 continue print i 結果 e python python python test.py1 2 求1 100的所有數的和 i 0sum 0 while i 100 i 1...
初學程式設計練習題 括號配對問題(Java)
問題描述 現在,有一行括號序列,檢查這行括號是否配對。輸入 第一行輸入乙個數n,表示有n組測試資料,n 0且n 100。後面的n行輸入多組輸入資料,每組輸入資料都是乙個字串s s的長度小於10000,且s不是空串 測試資料組數少於5組。資料保證s中只含有 四種字元 輸出 每組輸入資料的輸出佔一行,如...