Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで角かっこのスコアを見つける


問題

最初で唯一の引数として、バランスの取れた角括弧文字列strを受け取るJavaScript関数を作成する必要があります。

この関数は、次のルールに基づいて文字列のスコアを計算して返す必要があります-

  • []スコアは1です

  • ABのスコアはA+Bで、AとBはバランスの取れたブラケット文字列です。

  • [A]のスコアは2*Aです。ここで、Aはバランスの取れたブラケット文字列です。

たとえば、関数への入力が

入力

const str = '[][]';

出力

const output = 2;

以下はコードです-

const findScore = (str = '') => {
   const arr = []
   for(const char of str) {
      arr.push(char)
      while(arr[arr.length - 1] === ']') {
         arr.pop()
         if(arr[arr.length - 1] === '[') {
            arr.pop() arr.push(1)
         } else {
            let num = arr.pop()
            while(arr[arr.length - 1] >= 1) {
               num += arr.pop()
            }
            arr.pop()
            arr.push(2 * num)
         }
      }      
   }
   return arr.reduce((acc, a) => acc + a, 0)
};
console.log(findScore(str));

出力

2

  1. JavaScriptで配列の中央値インデックスを見つける

    問題 1次元空間内のさまざまな小惑星の位置を表す配列arrを取り込むJavaScript関数を作成する必要があります。 各小惑星について、絶対値はそのサイズを表し、符号はその方向を表します(正の意味は右、負の意味は左)。各小惑星は同じ速度で移動します。 私たちの機能は、すべての衝突後の小惑星の状態を見つけることになっています。 2つの小惑星が出会うと、小さい方の小惑星が爆発します。両方が同じサイズの場合、両方が爆発します。同じ方向に移動する2つの小惑星が出会うことはありません。 たとえば、関数への入力が-の場合 入力 const arr = [1, 7, 3, 6, 5, 6];

  2. JavaScriptで最長の連続結合を検索する

    問題 最初で唯一の引数として、数値のペアarrの配列を受け取るJavaScript関数を作成する必要があります。すべてのペアで、最初の数字は常に2番目の数字よりも小さくなります。 ここで、b