Heim  >  Artikel  >  Backend-Entwicklung  >  In der C-Sprache die maximale Anzahl von Zeichen zwischen zwei identischen Zeichen in einer Zeichenfolge

In der C-Sprache die maximale Anzahl von Zeichen zwischen zwei identischen Zeichen in einer Zeichenfolge

王林
王林nach vorne
2023-09-17 20:53:021131Durchsuche

In der C-Sprache die maximale Anzahl von Zeichen zwischen zwei identischen Zeichen in einer Zeichenfolge

Wir erhalten eine Buchstabenfolge. Das Array enthält mindestens zwei identische Zeichen. Die Aufgabe besteht hier darin, die maximale Zeichenanzahl zwischen zwei beliebigen identischen Zeichen zu finden. Wenn keine Duplikate von Zeichen vorhanden sind, wird -1 zurückgegeben.

Eingabe – String str = „abcdba“

Ausgabe – Die maximale Anzahl von Zeichen zwischen zwei beliebigen identischen Zeichen in der Zeichenfolge – 4

Erläuterung – Die einzigen wiederholten Zeichen sind „a“ und „b“. ', ihr Index ist -

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

Eingabe - string str = "AbcAaBcbC"

Ausgabe - die maximale Anzahl von Zeichen zwischen zwei beliebigen identischen Zeichen in einer Zeichenfolge - 5

Erklärung - Die wiederholten Zeichen sind 'A', 'b', 'c' und ihre Indizes lauten wie folgt:

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

Hinweis − Wenn die Eingabezeichenfolge „abcdefg“ ist, gibt es keine wiederholten Zeichen, sodass die Funktion -1 zurückgibt.

Die im folgenden Programm verwendete Methode lautet wie folgt:

  • Wir verwenden ein Zeichenarray, um die Zeichenfolge Str[] zu speichern.

  • Die Funktion maxChars(char str[],int n) wird zur Berechnung der Differenz verwendet zwischen zwei beliebigen wiederholten Buchstaben Die maximale Anzahl von Zeichen.

  • Wir initialisieren die Variable maxC auf -1.

  • Durchlaufen Sie das Array vom Anfang der Zeichenfolge in einer for-Schleife.

  • Durchlaufen Sie die verbleibenden Zeichen in einer verschachtelten for-Schleife und suchen Sie nach doppelten Zeichen (wenn str[i] == str[j]).

  • Wenn wahr, wird die Differenz zwischen Zeichen durch Subtrahieren des Index berechnet (temp = j – i – 1).

  • Wenn dieser Wert der bisher gefundene Maximalwert ist, speichern Sie ihn in maxC.

  • Nachdem Sie die gesamte Zeichenfolge durchlaufen haben, geben Sie maxC zurück.

Beispiel

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;
}

Ausgabe

Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert: -

Maximum number of characters between any two same character in a string : 5

Das obige ist der detaillierte Inhalt vonIn der C-Sprache die maximale Anzahl von Zeichen zwischen zwei identischen Zeichen in einer Zeichenfolge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen