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) 時間來完成執行。
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP