알파벳 문자열이 제공됩니다. 작업은 문자열에서 가장 긴 연속 반복이 있는 문자를 찾는 것입니다. 예를 들어 이해합시다.
입력 − 문자열[] ="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