JavaScript 中用於統計空格分隔元素頻率的函式


在這個問題陳述中,我們的目標是利用 Javascript 功能建立一個用於統計空格分隔元素頻率的函式。

理解問題

給定的問題說明我們得到了一個空格分隔的元素,我們的任務是統計這些空格分隔項的頻率。因此,我們將提供一些包含一些空格分隔項的字串,並分配一個結果陣列來檢視這些項的頻率計數。例如,如果我們有一個字串,其中包含像“Car, Bike, Car, Bicycle, Bike”這樣的空格分隔項,在這個例子中,我們可以看到 Car 出現了 2 次,Bike 出現了 2 次,Bicycle 出現了 1 次,所以輸出應該類似於 {Car: 2, Bike: 2, Bicycle: 1}。

給定問題的邏輯

首先,我們將建立一個函式來執行給定的任務。此函式將接收一個字串作為輸入,然後將其使用空格字元作為分隔符拆分為一個元素陣列。然後,我們將遍歷每個專案並相應地更新頻率。之後,我們將檢視該專案是否已作為頻率中的鍵存在,如果存在,我們將將其計數增加 1。否則,我們將新增一個新的鍵值對,其中該專案作為鍵,初始計數為 1。在函式結束時,我們將返回頻率物件。

演算法

步驟 1:此演算法的起點是宣告一個函式來統計空格分隔項的頻率。在這個函式內部,我們將傳遞一個字串引數作為輸入。

步驟 2:宣告函式後,我們將使用 split 方法將給定的字串拆分為一個元素陣列。我們將使用空格字元作為分隔符。此步驟將返回一個數組,其中每個元素將是一個單獨的單詞。

步驟 3:建立一個名為 freq 的空物件,以跟蹤每個專案的頻率計數。

步驟 4:使用 for 迴圈遍歷 items 陣列中的每個專案。

步驟 5:在這個迴圈內部,我們將檢索當前專案並將其分配給一個名為 elem 的變數。

步驟 6:檢查該元素是否已作為 freq 物件中的鍵存在。如果條件滿足,則將其計數增加 1。如果不滿足,則向頻率物件新增一個新的鍵值對,其中該專案作為鍵,初始計數為 1。

步驟 7:因此,頻率物件包含每個元素的計數。返回 freq 物件作為結果。

示例

//Function to count the frequency of spaces
function countFrequency(str) {
   var elem = str.split(" ");
   var freq = {};
   //Traverse the elements of the sentence
   for (var i = 0; i < elem.length; i++) {
      var element = elem[i];

      if (element in freq) {
         freq[element] += 1;
      } else {
         freq[element] = 1;
      }
   }

   return freq;
}
var sentence = "apple banana orange banana apple";
var result = countFrequency(sentence);
console.log(result);

輸出

{ apple: 2, banana: 2, orange: 1 }

複雜度

在程式碼中,我們使用了 split 方法將字串拆分為陣列。因此,時間複雜度為 O(n),其中 n 是字串的大小。由於迴圈遍歷 items 陣列中的每個專案,並且時間複雜度為 O(m),其中 m 是陣列中專案的數量。在迴圈中,更新操作的時間複雜度為 O(1)。因此,程式碼的總時間複雜度可以計算為 O(n + m)。

結論

在上面的程式碼中,我們有效地解決了給定問題,即統計給定字串中空格分隔項的頻率。我們使用了迴圈來遍歷專案,並使用 Javascript 物件來儲存和更新頻率計數。該程式碼提供了 O(n + m) 的平均時間複雜度,對於大型輸入字串也效率很高。

更新於: 2023年8月14日

196 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.