Maison > développement back-end > C++ > En langage C, le nombre maximum de caractères entre deux caractères identiques dans une chaîne

En langage C, le nombre maximum de caractères entre deux caractères identiques dans une chaîne

王林
Libérer: 2023-09-17 20:53:02
avant
1245 Les gens l'ont consulté

En langage C, le nombre maximum de caractères entre deux caractères identiques dans une chaîne

Nous recevons une chaîne de lettres. Il y aura au moins deux caractères identiques dans le tableau. La tâche ici est de trouver le nombre maximum de caractères entre deux caractères identiques. S’il n’y a aucun doublon de caractères, -1 est renvoyé.

Input - String str = "abcdba"

Output - Le nombre maximum de caractères entre deux caractères identiques dans la chaîne - 4

Explication - Les seuls caractères répétés sont 'a' et 'b ', leur index est -

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
Copier après la connexion

input - string str = "AbcAaBcbC"

output - le nombre maximum de caractères entre deux caractères identiques dans une chaîne - 5

explication - Les caractères répétés sont 'A', 'b', 'c' et leurs index sont les suivants :

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
Copier après la connexion

Remarque - Si la chaîne d'entrée est "abcdefg", il n'y a pas de caractères répétés, donc la fonction retournera -1.

La méthode utilisée dans le programme suivant est la suivante

  • Nous utilisons un tableau de caractères pour stocker la chaîne Str[]

  • La fonction maxChars(char str[],int n) est utilisée pour calculer la différence entre deux lettres répétées Le nombre maximum de caractères.

  • On initialise la variable maxC à -1.

  • Parcourez le tableau depuis le début de la chaîne dans une boucle for.

  • Parcourez les caractères restants dans une boucle for imbriquée et recherchez les caractères en double (si str[i] == str[j]).

  • Si vrai, calcule la différence entre les caractères en soustrayant l'index (temp = j - i - 1).

  • Si cette valeur est la valeur maximale trouvée jusqu'à présent, stockez-la dans maxC.

  • Après avoir parcouru toute la chaîne, renvoyez maxC.

Exemple

Démonstration

#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;
}
Copier après la connexion

Sortie

Si nous exécutons le code ci-dessus, il générera la sortie suivante −

Maximum number of characters between any two same character in a string : 5
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal