利用棧先將後出的特性,判斷字串中的數字表示式括號是否成對匹配,如果沒有給出錯誤位置資訊提示。
**思路很簡單,如果是左括號將左括號 就入棧,遇到右括號 棧中的左括號出棧。如果該出棧的時候,棧空 肯定匹配錯誤。還有就是表示式遍歷完畢,我們的棧 如果是全部匹配成功 ,棧肯定為空,不為空 匹配錯誤!這裡我們使用之前寫的順序棧,不清楚的可以看:線性表:順序棧演算法實現。
#define _crt_secure_no_warnings
#include #include #include #include "seqstack.h"
//列印錯誤資訊
void printerror(char* str,char* errmsg,char* ch)
printf("^\n");}/*
利用棧 判斷表示式中括號是否成對出現,如果沒有完全匹配,列印錯誤資訊。
*/void bracketmatch()
//遇到右括號,出棧進行匹配
if (*str==')')
else
}str++;
} //遍歷完畢 棧空括號表示式正確
JS判斷字串小括號是否成對合法
一 思路 要判斷 是否成對 運用棧的 後進先出 的特點,定義乙個空陣列,作為棧 for迴圈遍歷字串,當遇到 的時候就把 新增到空陣列最頂端,push方法,記錄發現乙個左括號 當遇到 就把陣列中最頂端的元素彈出來,pop方法,抵消乙個左括號。注意如果此時陣列是空的,但是遇到 說明沒有 缺少成對的 則返...
利用棧判斷字串括號是否匹配
任務描述 本關任務 基於棧stack資料結構判斷字串中的括號是否匹配,字串中僅包含如下字元 相關知識 為了完成本關任務,你需要掌握 1.如何建立乙個棧,2.入棧 出棧操作。演算法思想 輸入符號串str 初始化棧s for i 0 str i 0 i 掃瞄括號串 若棧不空,則匹配不成功,否則匹配成功 ...
消除字串中成對的括號
給定乙個字串,設計乙個演算法消除其中成對出現的括號,如果括號不成對,提示異常 error 例如 1,2,3 4,5,6 7 轉化為1,2,3,4,5,6,7 例如 1,2,3 4,5,6 7 提示error。思路 遍歷原始陣列,如果是左括號 設定括號標誌位加1,如果是右括號 設定括號標誌位減一,如果...