JavaScript 字串中公共字元的計數


在給定的問題陳述中,我們需要藉助 JavaScript 功能找到給定字串的公共字元計數。因此,我們將使用基本的 JavaScript 來解決此問題。

理解問題

眼前的問題是在兩個給定字串之間找到公共字元。因此,為了解決此問題,我們將確定它們有多少個公共字元。例如,假設我們有兩個字串,如“abaac”和“baaaa”,那麼在這兩個字串中,我們可以看到有兩個公共字元,分別是“a”和“b”。因此,最終輸出將為 2。

給定問題的邏輯

為了解決給定的問題,我們將建立一個函式來執行給定的任務。並且在這個函式內部,我們將採用一個非常簡單的方法,該方法迭代第一個字串中的每個字元,並檢查該字元是否存在於第二個字串中。如果找到一個字元,我們將把一個計數變數增加 1,並從第二個字串中刪除該字元。此步驟將確保我們不會多次計算同一個字元。

演算法

步驟 1:眾所周知,我們需要計算給定兩個字串中公共字母的個數。因此,為了執行此任務,我們將首先建立一個函式並將其命名為 commonCharacterCount,在此函式中,我們將傳遞兩個引數 str1 和 str2。因此,基本上我們將比較這兩個字串 str1 和 str2 並找到公共字母。

步驟 2:定義函式後,在此函式內部,我們將初始化一個計數變數並將其初始值設定為零。

步驟 3:現在我們將遍歷第一個字串的每個字元。檢查該字元是否存在於第二個字串中的條件,因此從第二個字串中刪除該字元,並將計數變數的值加一。

步驟 4:最後,我們將返回表示公共字元數量的計數變數。

示例

//Function to get the common character counts
function commonCharCount(str1, str2) {
   let count = 0;
   const arr1 = str1.split('');
   const arr2 = str2.split('');

   for (let i = 0; i < arr1.length; i++) {
      const char = arr1[i];
      const index = arr2.indexOf(char);

      if (index !== -1) {
         arr2.splice(index, 1);
         count++;
      }
   }

   return count;
}

const str1 = "Natasha";
const str2 = "Nitisha";
console.log(commonCharCount(str1, str2));

輸出

5

複雜度

計算給定字串之間公共字元的時間複雜度為 O(n^2),其中 n 是給定輸入字串的長度。因為對於第一個字串中的每個字元,我們需要搜尋整個第二個字串。並且該問題的空間複雜度為 O(n)。因為我們將字串轉換為陣列。

結論

在此函式中,我們使用 JavaScript 實現了公共字元計數問題。由於我們遍歷了第一個字串中的每個字元並檢查了它在第二個字串中的存在情況。因此,我們能夠有效地找到公共字元的數量。

更新於:2023 年 8 月 14 日

519 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.