卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

js判斷括號(hào)是否合法

在編程中,判斷括號(hào)是否合法是一個(gè)常見的問題。例如,對于表達(dá)式"(a b)*(c-d)",我們希望能夠通過程序來驗(yàn)證其中的括號(hào)是否匹配正確。本文將介紹使用JavaScript實(shí)現(xiàn)括號(hào)合法性判斷的方法。一

在編程中,判斷括號(hào)是否合法是一個(gè)常見的問題。例如,對于表達(dá)式"(a b)*(c-d)",我們希望能夠通過程序來驗(yàn)證其中的括號(hào)是否匹配正確。本文將介紹使用JavaScript實(shí)現(xiàn)括號(hào)合法性判斷的方法。

一、棧的應(yīng)用

棧是一種后進(jìn)先出(LIFO)的數(shù)據(jù)結(jié)構(gòu),非常適合用來解決括號(hào)匹配的問題。我們可以遍歷表達(dá)式中的每一個(gè)字符,當(dāng)遇到左括號(hào)時(shí),將其壓入棧中;當(dāng)遇到右括號(hào)時(shí),判斷棧頂?shù)淖址欠駷橄鄳?yīng)的左括號(hào),如果是,則將棧頂?shù)淖址鰲?,繼續(xù)遍歷下一個(gè)字符;如果不是,則說明括號(hào)不匹配,返回false。

以下是使用棧實(shí)現(xiàn)括號(hào)匹配的代碼示例:

```javascript

function isParenthesesValid(expression) {

let stack [];

for (let i 0; i < expression.length; i ) {

if (expression[i] '(' || expression[i] '[' || expression[i] '{') {

stack.push(expression[i]);

} else if (expression[i] ')' || expression[i] ']' || expression[i] '}') {

if (stack.length 0) {

return false;

}

let top stack.pop();

if ((expression[i] ')' top ! '(') || (expression[i] ']' top ! '[') || (expression[i] '}' top ! '{')) {

return false;

}

}

}

return stack.length 0;

}

let expression "(a b)*(c-d)";

console.log(isParenthesesValid(expression));

```

二、遍歷字符串的實(shí)現(xiàn)

除了使用棧,我們還可以使用遍歷字符串的方式來判斷括號(hào)是否合法。思路是創(chuàng)建一個(gè)計(jì)數(shù)器,遍歷表達(dá)式中的每一個(gè)字符,當(dāng)遇到左括號(hào)時(shí),計(jì)數(shù)器加一;當(dāng)遇到右括號(hào)時(shí),計(jì)數(shù)器減一。如果在遍歷過程中計(jì)數(shù)器小于零,或者最終計(jì)數(shù)器不等于零,則說明括號(hào)不匹配,返回false。

以下是使用遍歷字符串實(shí)現(xiàn)括號(hào)匹配的代碼示例:

```javascript

function isParenthesesValid(expression) {

let count 0;

for (let i 0; i < expression.length; i ) {

if (expression[i] '(') {

count ;

} else if (expression[i] ')') {

count--;

if (count < 0) {

return false;

}

}

}

return count 0;

}

let expression "(a b)*(c-d)";

console.log(isParenthesesValid(expression));

```

綜上所述,本文介紹了使用JavaScript判斷括號(hào)是否合法的兩種方法:棧的應(yīng)用和遍歷字符串。讀者可以根據(jù)自己的實(shí)際需求選擇合適的方法來解決括號(hào)匹配問題。

標(biāo)簽: