//用棧來實現
//遇到左括號壓棧
//遇到右括號彈棧.並匹配,若不匹配出錯
//處理完後,若棧不位空,表示出錯
//注意問題:
//1。出棧時沒有考慮堆疊下溢的情形:類似"())))"的輸入必然導致程式崩潰!
#include
#include
#include
#include
#include
using namespace std;// 在vc中c++無法用ios::nocreate,而用.h無法用exit
struct bracket
a=,b=,c=,a=',0,0},b=,c=;
int dis=3;
int main()
,//又會在當引號裡字元奇偶性會可能// 導致"被跳過,沒有終止條件,對奇偶判//斷顯得複雜了
//用continue結束實現
while(infile.get()!='"')
if(x.bk=='/n')//字元回車時行加1,列歸0
if (x.bk==a.bk||x.bk==b.bk||x.bk==c.bk) //讀到左括號進棧
//cout//當括號能匹配時出棧'('=40, ')'=42,'['=91,']'=93,''=125利用這個關係
if(dis<=2) //
//else
infile.close();
return 0;
}
查詢對應的括號
c c 練習題 查詢對應的括號。如 在位置3出的左括號其右括號所在的位置為4 查詢對應的括號。如 在位置3出的左括號其右括號所在的位置為4 include include include include using std cin using std cout using std endl enum...
平衡的括號問題
平衡的括號 要運用棧的一些知識,stl。棧的特點是 先進後出 標頭檔案是,宣告方式 stacks 主要操作 push 把元素壓入 棧頂 又稱入棧 pop 從棧頂把元素彈出,出棧 top 取棧頂元素 但不刪除 size 測棧長 個數 empty 判斷棧是否為空 題目大意 輸入乙個包含 和 的括號序列,...
括號匹配問題的總結
括號匹配問題有若干種,這裡分析其中一種括號裡有數字有字元,然後求的最終結果的問題。給出兩道例題,leetcode224和leetcode394。題目描述 實現乙個基本的計算器來計算乙個簡單的字串表示式的值。字串表示式可以包含左括號 右括號 加號 減號 非負整數和空格 示例輸入 1 4 5 2 3 6...