Maison > développement back-end > C++ > le corps du texte

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
1127 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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!