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