棧的特點:先進後出(filo)。利用棧的這一特點,可以解決像它具有一樣特徵的問題,比如,大數相加、編輯器的undo序列的儲存、瀏覽器訪問歷史的記錄儲存、遞迴函式中呼叫的位址和引數值的儲存等。
本文章主要要講的是如何利用棧的特點,來檢查表示式的括號是否匹配。
//括號匹配
let islegal=function(str)else if(char===")" || char==="]" || char==="}" || char==="*/" )else
}//判斷左右括號是否匹配
let matches=function(char1,char2)")
|| (char1 === "[" && char2 === "]")
|| (char1 === "/*" && char2 === "*/") )else
}//入口
let leftstack=;
if(str!==null||str!==""||str!==undefined)else if(verifyflag(char)===right)
}else
}//迴圈結束,如果左括號棧還有括號,也是匹配失敗
if(leftstack.length !== 0)
return true;
}}//使用函式
let str1="(9+4)*5+13/32+[(2+5)+(2/5)]/*注釋*/";
let str2="(9+4)*5+13/32+[(2+5)+(2/5)/*注釋*/";
islegal(str1) //true
islegal(str2) //false
表示式括號匹配
假設乙個表示式有英文本母 小寫 運算子 和左右小 圓 括號構成,以 作為表示式的結束符。請編寫乙個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回 yes 否則返回 no 表示式長度小於255,左圓括號少於20個。輸入格式 一行 表示式 輸出格式 一行 yes 或 no 輸入樣例 1 2 x y...
表示式括號匹配
假設乙個表示式有英文本母 小寫 運算子 和左右小 圓 括號構成,以 作為表示式的結束符。請編寫乙個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回 yes 否則返回 no 表示式長度小於255,左圓括號少於20個。輸入格式 一行 表示式 輸出格式 一行 yes 或 no include incl...
表示式括號匹配
假設乙個表示式有英文本母 小寫 運算子 和左右小 圓 括號構成,以 作為表示式的結束符。請編寫乙個程式檢查表示式中的左右圓括號是否匹配,若匹配,則返回 yes 否則返回 no 表示式長度小於255,左圓括號少於20個。include using namespace std int top 0 inl...