文字列を取得します。配列内には少なくとも 2 つの同一の文字が存在します。ここでのタスクは、2 つの同一の文字間の最大文字数を見つけることです。重複する文字がない場合は、-1 が返されます。
Input - String str = "abcdba"
Output - 文字列内の 2 つの同一文字間の最大文字数 - 4
説明 - 繰り返される文字は「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"
出力 - 文字列内の 2 つの同一文字間の最大文字数 - 5
説明 - 重複 文字は '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[]
#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; }出力上記のコードを実行すると、次の出力が生成されます-
リーリー
以上がC 言語では、文字列内の 2 つの同一の文字の間にある最大文字数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。