ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript の楽しい質問: 括弧のペア

JavaScript の楽しい質問: 括弧のペア

黄舟
リリース: 2017-02-15 14:14:35
オリジナル
1493 人が閲覧しました

「ペアで」の意味をすぐに理解できるように、最初にいくつかの例を見てみましょう。


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) を参照してください。 )!

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート