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


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

输入− 字符串[] = “abbbabbbbcdd”

输出 − b

解释 − 在上面的字符串中,最长的连续序列是字符“b”。连续的b的个数是4。

输入− 字符串[] = “aabbcdeeeeed”

输出 − b

解释 − 在上面的字符串中,最长的连续序列是字符“e”。连续的e的个数是5。

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

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

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

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

  • 如果str[i]和下一个str[i+1]相同,则计数加1。

  • 如果该计数是最大值,则将该值存储在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

更新于:2020年8月17日

2K+ 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告