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