우리는 일련의 문자를 받습니다. 배열에는 동일한 문자가 두 개 이상 있습니다. 여기서의 작업은 두 개의 동일한 문자 사이의 최대 문자 수를 찾는 것입니다. 중복된 문자가 없으면 -1이 반환됩니다.
Input - 문자열 str = "abcdba"
Output - 문자열에서 동일한 두 문자 사이의 최대 문자 수 - 4
Explanation - 유일하게 반복되는 문자는 'a'와 'b입니다. ', 해당 인덱스는 -
1. 2‘a’ first index 0 last 5 , characters in between 5-0-1=4 2. ‘b’ first index 1 last 4 , characters in between 4-1-1=2 Maximum character in between repeating alphabets : 4
input - string str = "AbcAaBcbC"
output - 문자열에서 동일한 두 문자 사이의 최대 문자 수 - 5
explanation - 반복되는 문자는 다음과 같습니다. 'A', 'b', 'c' 및 해당 인덱스는 다음과 같습니다.
1. ‘A’ first index 0 last 3 , characters in between 3-0-1=2 2. ‘b’ first index 1 last 7 , characters in between 7-1-1=5 3. ‘c’ first index 2 last 6 , characters in between 6-2-1=3 Maximum character in between repeating alphabets : 5
Note − 입력 문자열이 "abcdefg"인 경우 반복되는 문자가 없으므로 함수는 -1을 반환합니다.
문자 배열을 사용하여 문자열 Str[]을 저장합니다.
함수 maxChars(char str[],int n)을 사용하여 차이를 계산합니다. 두 개의 반복 문자 사이의 최대 문자 수입니다.
변수 maxC를 -1로 초기화합니다.
for 루프의 문자열 시작 부분부터 배열을 탐색합니다.
중첩된 for 루프의 나머지 문자를 반복하고 중복 문자를 검색합니다(str[i] == str[j]인 경우).
true이면 인덱스를 빼서 문자 간의 차이를 계산합니다(temp = j - i - 1).
이 값이 지금까지 발견된 최대값이라면 maxC에 저장하세요.
전체 문자열을 순회한 후 maxC를 반환합니다.
Demonstration
#include <stdio.h> #include <stdio.h> #include <math.h> int maxChars(char str[],int n){ int size = n; int maxC = -1; for (int i = 0; i < n - 1; i++) for (int j = i + 1; j < n; j++) if (str[i] == str[j]){ int temp=abs(j-i-1); maxC = maxC>temp?maxC:temp; } return maxC; } // Driver code int main(){ char Str[] = "AbcAaBcbC"; printf("Maximum number of characters between any two same character in a string :%d", maxChars(Str,9) ); return 0; }
위 코드를 실행하면 다음과 같은 출력이 생성됩니다. −
Maximum number of characters between any two same character in a string : 5
위 내용은 C 언어에서 문자열에서 동일한 두 문자 사이의 최대 문자 수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!