プログラミング バックエンド

【Javascript】カッコ列(ブラケット / brackets)が正しいかどうか判定する方法

スポンサーリンク

こんにちは!

今回は「Javascriptでカッコ列(ブラケット / brackets)が正しいかどうか判定する方法」についてお伝えしたいと思います。

アルゴリズムの勉強をしており、配列にカッコ列について理解したので共有したいと思います。

カッコ列が正しいかどうか判定する方法

まず、カッコ列が正しいと言える条件です。

ポイント

カッコの始まり(とカッコの終わり)の数が等しい または カッコが存在しない

文字列の先頭から見た時、「(の数」 >= 「)の数」が常に成り立つこと

以下に具体例を用いて説明します。

const checkBrackets = (input) => {
  const targetArr = input.match(/\(|\)/g); // (, )以外を除去
  if (!targetArr) return true;
  const targetStr = targetArr.join(''); // 一致した文字列の配列を結合
  let depth = 0; // カッコ()の深さ
  for (let i = 0; i < targetStr.length; i++) {
    if (targetStr[i] === '(') depth++;
    if (targetStr[i] === ')') depth--;
    if (depth < 0) return false; // カッコ()の深さが負の数になった時点で誤り
  }
  if (depth !== 0) return false;
  return true;
}
console.log(checkBrackets('(aaa)(bbb)')); // true
console.log(checkBrackets('((())())')); // true
console.log(checkBrackets('(()')); // false
console.log(checkBrackets('))bbb((')); // false
console.log(checkBrackets('abc')); // true

 

これでカッコが正しいかどうか判別することができます。

以上、お疲れさまでした〜🍵

スポンサーリンク

-プログラミング, バックエンド
-

© 2024 エンジニア×ライフハック Powered by AFFINGER5