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+ 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告