「ペアで」の意味をすぐに理解できるように、最初にいくつかの例を見てみましょう。
validParentheses( "()" ) // => returns true
完璧なペアを形成する左ブラケットと右ブラケット。
次のものは 2 つのペアを形成します:
validParentheses( "(())" ) // => returns true
N ペアと呼ばれる、より複雑なものを考えてみましょう:
validParentheses( "(())((()())())" ) // => returns true
以下の括弧は「ペア」で呼び出すことはできず、「」シャドウ単独でのみ呼び出すことができます。 ":
validParentheses( "(" ) // => returns false
この例では、ペアが 2 つありますが、単一の右括弧が 2 つあります:
validParentheses( ")(()))" ) // => returns false
さて、私の紹介を聞いた後、タスクを見てみましょう:
書き方 括弧で構成される文字列を受け入れ、括弧が「ペア」である場合は true を返し、それ以外の場合は false を返す validParentheses 関数。
すべての入力文字列は空ではなく、左括弧と右括弧のみを持ちます。
考え方:
「ペアで」なので、「1つずつオフセット」するアプローチをしましょう。
まず空のスタックを用意し、左括弧に出会ったらそれをスタックに押し込み、右括弧に出会ったら「左括弧」を吐き出し、この二つは互いにオフセットします。
すべての文字が処理されるまで待ってから、スタックのステータスを判断します。スタックが空の場合は、すべての括弧がオフセットされている、つまり「ペアになっている」ことを意味します。
コードは次のとおりです:
function validParentheses(parens){ var stack = []; for(var i=0;i<parens.length;i++){ var current = parens.charAt(i); switch(current){ case "(": stack.push(current); break; case ")": var ele = stack.pop(); if(ele === void 0){ return false; } break; } } return stack.length == 0; }
上記は JavaScript の興味深い質問の内容です: 括弧のペア 詳細については、PHP 中国語 Web サイト (www.php.cn) を参照してください。 )!