C ++中字符串中的最大连续重复字符

我们得到了一串字母。任务是找到在字符串中出现最长连续重复的字符。让我们通过示例来理解。

输入-String [] =“ abbbabbbbcdd”

输出-b

解释-在上述字符串中,最长的连续序列是字符'b'。连续b的计数为4。

输入-String [] =“ aabbcdeeeeed”

输出-b

说明-在上面的字符串中,最长的连续序列是字符'e'。连续e的计数为5。

以下程序中使用的方法如下

  • 字符数组string1 []用于存储字母字符串。

  • 函数maxRepeating(char str [],int n)具有两个输入参数。字符串本身,其大小。返回具有最长连续重复序列的字符。

  • 从第一个位置到最后一个在str []中遍历字符串。

  • 如果str [i]和下一个str [i + 1]相同,则递增count。

  • 如果该计数最大,则将值存储在maxC中,将字符存储在repchar中。

  • 返回repchar作为最终结果。

示例

#include <iostream>
#include <iostream>
char maxRepeating(char str[], int n){
   int count = 0;
   char repchar = str[0];
   int maxC = 1;
   for (int i=0; i<n; i++){
      if (str[i] == str[i+1] && i < n-1 )
         maxC++;
      else{
         if (maxC > count){
            count = maxC;
            repchar = str[i];
         }
         maxC = 1;
      }
   }
   return repchar;
}
int main(){
   char string1[] = "aaabbaacccddef";
   int N=14;
   printf("Maximum Consecutive repeating character in string: %c",maxRepeating(string1,N));
   return 0;
}

输出结果

如果我们运行上面的代码,它将生成以下输出-

Maximum Consecutive repeating character in string: a
猜你喜欢