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
-
JavaScriptで配列の中央値インデックスを見つける
問題 1次元空間内のさまざまな小惑星の位置を表す配列arrを取り込むJavaScript関数を作成する必要があります。 各小惑星について、絶対値はそのサイズを表し、符号はその方向を表します(正の意味は右、負の意味は左)。各小惑星は同じ速度で移動します。 私たちの機能は、すべての衝突後の小惑星の状態を見つけることになっています。 2つの小惑星が出会うと、小さい方の小惑星が爆発します。両方が同じサイズの場合、両方が爆発します。同じ方向に移動する2つの小惑星が出会うことはありません。 たとえば、関数への入力が-の場合 入力 const arr = [1, 7, 3, 6, 5, 6];
-
JavaScriptで最長の連続結合を検索する
問題 最初で唯一の引数として、数値のペアarrの配列を受け取るJavaScript関数を作成する必要があります。すべてのペアで、最初の数字は常に2番目の数字よりも小さくなります。 ここで、b