js檢查表示式括號匹配

2021-09-12 17:38:38 字數 842 閱讀 6890

棧的特點:先進後出(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...