ホームページ  >  記事  >  バックエンド開発  >  C 言語では、文字列内の 2 つの同一の文字の間にある最大文字数

C 言語では、文字列内の 2 つの同一の文字の間にある最大文字数

王林
王林転載
2023-09-17 20:53:021133ブラウズ

C 言語では、文字列内の 2 つの同一の文字の間にある最大文字数

文字列を取得します。配列内には少なくとも 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[]

  • # を格納するために文字配列を使用します。 ## function maxChars(char str[],int n) は、繰り返される 2 つの文字の間の最大文字数を計算するために使用されます。

  • 変数 maxC を -1 に初期化します。

  • for ループで文字列の先頭から配列を走査します。

  • ネストされた for ループ内の残りの文字を反復処理し、重複する文字を検索します (str[i] == str[j] の場合)。

  • true の場合、文字間の差異はインデックスを減算することによって計算されます (temp = j - i - 1)。

  • この値がこれまでに見つかった最大値である場合は、それを maxC に格納します。

  • 文字列全体を走査した後、maxC を返します。

デモンストレーション

#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 サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。