Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++에서 문자열의 최대 연속 반복 문자


알파벳 문자열이 제공됩니다. 작업은 문자열에서 가장 긴 연속 반복이 있는 문자를 찾는 것입니다. 예를 들어 이해합시다.

입력 − 문자열[] ="abbbbbbbcdd"

출력 - b

설명 - 위의 문자열에서 가장 긴 연속 시퀀스는 문자 'b'입니다. 연속된 b의 개수는 4입니다.

입력 − 문자열[] ="aabbcdeeeed"

출력 - 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