JavaScript 计数重复字母

javascriptweb developmentfront end technology

在此问题陈述中,我们的目标是借助 Javascript 功能计算给定字符串中的重复字母。因此,我们可以借助循环和 Javascript 的一些内置方法解决此问题。

给定问题的逻辑

在给定的问题陈述中,我们必须设计一个程序来计算给定字符串中的重复字母。

为了实现此任务,我们首先将创建一个用于计数的空白对象、用于重复字符的数组和用于结果的另一个对象。然后,我们将循环遍历字符串中的每个字符。因此,对于每个字符,我们将检查它是否已存在于 count 变量中。如果存在,则将其值增加 1,然后检查它是否已添加到重复字符数组中。如果不存在,则将其添加到数组中。如果字符不存在于计数变量中,则我们将添加计数 1。

因此,在第一个循环之后,我们将为字符串中的重复字符定义另一个循环,并将每个重复字符作为键添加到具有计数值的结果变量中。

算法

步骤 1 - 首先,我们需要定义一个函数来识别和计算给定字符串中的重复字符。

步骤 2 - 在下一步中,我们将创建一个空白对象来在其中存储计数值。 其次,创建一个空白数组来存储重复字符数组。

步骤 3 - 然后,我们将在内置函数 charAt 的帮助下循环遍历输入字符串中的每个字符,以访问每个索引处的每个字符并将其存储在单独的变量中。

步骤 4 - 因此,在获取每个字符后,我们需要检查它是否已被计数。如果确实存在,我们将其计数增加 1。

步骤 5 - 此外,我们通过检查字符是否已存在于重复数组中来检查该字符是否重复。如果重复,则将其推送到 char 对象。否则将其计数值保持为 1。

步骤 6 - 现在创建另一个名为 result 的对象来获取重复的字符及其计数值。

步骤 7 - 再次使用 for 循环检查重复的字符并将这些元素放入结果对象中以获取所需的输出。

算法代码

//函数用于找出重复的字母
function repeatedLetters(str) {
   //计数变量来获取重复字母
   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) 时间来完成执行。


相关文章