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

JavaScriptで合計ペアをマップする


問題

insertメソッドとsumメソッドを使用してMapSumクラスを実装する必要があります。メソッドinsertの場合、(文字列、整数)のペアが与えられます。文字列はキーを表し、整数は値を表します。キーがすでに存在する場合は、元のキーと値のペアが新しいキーに上書きされます。

メソッドsumの場合、プレフィックスを表す文字列が与えられ、キーがプレフィックスで始まるすべてのペアの値の合計を返す必要があります。

以下はコードです-

class Node {
   constructor(val) {
      this.num = 0
      this.val = val
      this.children = {}
   }
}
class MapSum {
   constructor(){
      this.root = new Node('');
   }
}
MapSum.prototype.insert = function (key, val) {
   let node = this.root
   for (const char of key) {
      if (!node.children[char]) {
         node.children[char] = new Node(char)
      }
      node = node.children[char]
   }
   node.num = val
}

MapSum.prototype.sum = function (prefix) {
   let sum = 0
   let node = this.root
   for (const char of prefix) {
      if (!node.children[char]) {
         return 0
      }
      node = node.children[char]
   }
   const helper = (node) => {
      sum += node.num
      const { children } = node
      Object.keys(children).forEach((key) => {
         helper(children[key])
      })
   }
   helper(node)
   return sum
}
const m = new MapSum();
console.log(m.insert('apple', 3));
console.log(m.sum('ap'));

出力

undefined
3

  1. Javascriptでのプリムのアルゴリズム

    Primのアルゴリズムは、重み付き無向グラフの最小スパニングツリーを見つける欲張りアルゴリズムです。すべての頂点を含むツリーを形成するエッジのサブセットを検出し、ツリー内のすべてのエッジの合計の重みが最小化されます。 アルゴリズムは、ツリーから別の頂点への可能な限り安価な接続を追加する各ステップで、任意の開始頂点から一度に1つの頂点でこのツリーを構築することによって動作します。 プリムのアルゴリズムはどのように機能しますか? プリムのアルゴリズムがどのように機能するかを示す図を見てみましょう- 1.ルートノードとして任意のノードを選択します。この場合、Primのスパニングツリーのルートノ

  2. JavaScriptでオブジェクトをマップします。

    マップオブジェクトはES6で導入され、キーと値のペアである要素のコレクションです。マップ内のキーまたは値は、オブジェクトまたはプリミティブ値にすることができます。 以下はJavaScriptのマップオブジェクトのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initia