[データ構造/アルゴリズム]211029カッコを検索stackカッコを使用するreduce
6961 ワード
📌 balancedBrackets
文字列を受け入れ、文字列内のすべてのカッコが一致しているかどうかを返します.
注意事項
I/O例
console.log(output);////-> false
console.log(output);//--> true
Advanced
すべてのタイプのカッコ((()、{、}、[、])を含む文字列を入力し、すべてのカッコが一致するかどうかを返します.
レコードコード
転送コードは上のコードの方向と似ていますが、私はもっと理解しやすいです.このコードには3つの変数が割り当てられます.1つはスタックとして使用される空の配列であり、キー値にオープンカッコ、価値値に終了カッコを含むオブジェクトが含まれ、最後にCloser変数が割り当てられます.
const stack = [];
const opener = {
'{': '}',
'[': ']',
'(': ')',
};
const closer = '}])';
for (let i = 0; i < str.length; i++) {
if (str[i] in opener) {
stack.push(str[i]); //1)
} else if (closer.includes(str[i])) {
const top = stack.pop();
const pair = opener[top];
if (pair !== str[i]) {
return false; //2)
}
}
}
return stack.length === 0;//3)
}
1)開口器内str[i]がキー値である場合、スタック内でpush2)closer変数にstr[i]が含まれている場合、開いている変数の最上位がstr[i]と一致しない場合、falseが返されます.
3)スタックが空の場合、すべてのカッコが正しく一致していることを示し、trueを返します.
Reference
この問題について([データ構造/アルゴリズム]211029カッコを検索stackカッコを使用するreduce), 我々は、より多くの情報をここで見つけました https://velog.io/@jinlee122700/자료구조알고리즘-211029-괄호짝찾기-stack이용-괄호-reduceテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol