JavaScript 統計重複字母


在這個問題陳述中,我們的目標是藉助 Javascript 功能來統計給定字串中重複出現的字母。因此,我們可以藉助迴圈和 Javascript 的一些內建方法來解決這個問題。

給定問題的邏輯

在給定的問題陳述中,我們必須設計一個程式來統計給定字串中重複出現的字母。

為了實現此任務,我們首先將建立一個空白物件用於計數,一個數組用於儲存重複字元,以及另一個物件用於儲存結果。然後,我們將遍歷字串中的每個字元。對於每個字元,我們將檢查它是否已存在於計數變數中。如果存在,我們將它的值加 1,然後檢查它是否已新增到重複字元陣列中。如果不存在,我們將它新增到陣列中。如果字元不存在於計數變數中,我們將新增它,並將計數設定為 1。

因此,在第一次迴圈之後,我們將定義另一個迴圈來處理字串中重複出現的字元,並將每個重複字元作為鍵新增到結果變數中,並帶有計數值。

演算法

步驟 1 − 首先,我們需要定義一個函式來識別並統計給定字串中重複出現的字元。

步驟 2 − 在下一步中,我們將建立一個空白物件來儲存計數值。其次,建立一個空白陣列來儲存重複字元陣列。

步驟 3 − 然後,我們將使用內建函式 charAt 遍歷輸入字串中的每個字元,以訪問每個索引處的每個字元,並將其儲存在一個單獨的變數中。

步驟 4 − 因此,在獲取每個字元後,我們需要檢查它是否已被計數。如果存在,我們將它的計數加 1。

步驟 5 − 此外,我們透過檢查字元是否已存在於重複陣列中來檢查該字元是否重複。如果重複,則將其推入 char 物件。否則,將其計數值保持為 1。

步驟 6 − 現在建立一個名為 result 的另一個物件,以獲取重複字元及其計數值。

步驟 7 − 再次使用 for 迴圈來檢查重複字元,並將這些元素放入 result 物件中以獲得所需輸出。

演算法程式碼

//function to find out the repeated letters
function repeatedLetters(str) {
   //count variable for repeated letters
   var count = {};
   var repeated = [];

   for (var i = 0; i < str.length; i++) {
      var char = str.charAt(i);
      if (count[char]) {
         count[char]++;
         if (repeated.indexOf(char) === -1) {
            repeated.push(char);
         }
      } else {
         count[char] = 1;
      }
   }
   var result = {};
   for (var i = 0; i < repeated.length; i++) {
      var char = repeated[i];
      result[char] = count[char];
   }
   return result;
}
console.log(repeatedLetters("Hello Tutorialspoint"));

複雜度

實現程式碼的時間複雜度為 O(n)。此複雜度表明執行所需的時間與輸入字串的大小成正比。因為程式碼只遍歷輸入字串一次,並且對每個字元執行基本操作。現在,上述程式碼在最壞情況下的空間複雜度為 O(n)。因為程式碼使用的記憶體量會隨著輸入字串的大小線性增長。程式碼為每個字元維護一個計數,如果該字元在輸入字串中出現多次,則會增加記憶體使用量。

結論

根據以上程式碼,我們已經成功地使用 Javascript實現了問題陳述。程式碼展示瞭如何統計給定字串中重複出現的字元。因此,我們使用了 for 迴圈來迭代字元。程式碼使用 O(n) 時間來完成執行。

更新於:2023年5月18日

3K+ 次檢視

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.