Table des matières
Regardons différents scénarios d'entrée et de sortie :
Passez les données à la fonction Rearrangement(str, length).
Maison développement back-end C++ Réorganiser les caractères dans une chaîne de sorte que deux caractères adjacents soient différents, implémenté en C++

Réorganiser les caractères dans une chaîne de sorte que deux caractères adjacents soient différents, implémenté en C++

Aug 26, 2023 pm 10:37 PM
重新排列 Disposition des cordes Les personnages adjacents ne sont pas les mêmes

Réorganiser les caractères dans une chaîne de sorte que deux caractères adjacents soient différents, implémenté en C++

On nous donne une chaîne, en supposant qu'elle soit str, la longueur peut être n'importe quelle valeur. La tâche consiste à réorganiser la chaîne donnée afin que les caractères adjacents identiques ne s'alignent pas ensemble dans la chaîne résultante.

Regardons différents scénarios d'entrée et de sortie :

Input − String str = "itinn"

Output − Réorganisez les caractères de la chaîne de manière à ce que deux caractères adjacents ne soient pas identiques, le résultat pour : initial.

Explication − On nous donne une variable de type chaîne, en supposant qu'elle soit str. Nous allons maintenant réorganiser les caractères de la chaîne d'entrée afin qu'aucun caractère identique n'apparaisse à la même position, c'est-à-dire déplacer 'nn' vers une position non adjacente. Le résultat final est donc La chaîne sera « initn ». une variable de type chaîne, en supposant qu'il s'agit d'une chaîne. Nous allons maintenant réorganiser les caractères de la chaîne d'entrée afin qu'aucun caractère identique n'apparaisse dans la même position, c'est-à-dire déplacer 'bb', 'aa', 'bb', 'aa' puisqu'ils sont identiques et adjacents. La chaîne finale sera donc « ababababa ».

La méthode utilisée dans le programme ci-dessous est la suivante

Entrez une variable de type chaîne, en supposant qu'elle soit str, calculez la taille de la chaîne et stockez-la dans une variable nommée longueur.

Vérifiez si la longueur est 0, puis revenez.

Passez les données à la fonction Rearrangement(str, length).

  • À l'intérieur de la fonction Réarrangement(arr, longueur)

  • définit la taille de la chaîne à (longueur + 1)/2.

  • Déclarez une variable de type vectoriel vec(26, 0), qui stockera les données de type entier, et un pointeur de type chaîne ptr(length, ‘ ‘). Déclarez également une variable temporaire temp, de type entier et de valeur 0.

  • Démarrez la boucle FOR pour itérer str. Dans la boucle, définissez vec[it - 'a']++.

    • Créez une variable de type caractère ch et définissez-la sur le résultat de l'appel de la fonction maximum(vec).

    • Déclarez un total variable de type entier et définissez-le sur vec[ch - 'a'].

    • Vérifiez si le total est supérieur à la taille, puis retournez.

    • Démarrez la boucle WHILE total, puis réglez ptr[temp] sur ch, réglez temp sur temp + 2 et décrémentez le total de 1.

    • Réglez vec[ch - 'a'] sur 0. Commencez à boucler FOR de i à 0 jusqu'à ce que i soit inférieur à 26. À l'intérieur de la boucle, démarrez la boucle while, lorsque vec[i] est supérieur à 0, définissez temp sur (temp >= length) ? : temp, définissez ptr[temp] sur 'a' + i, définissez temp sur temp. + 2, et décrémenter vec[i] de 1.

    • Return ptr

    • À l'intérieur de la fonction char maximum(const vector& vec)
    • déclare une variable de type entier high et la définit sur 0, et une variable de type caractère c.
    • Commencez à boucler FOR de i à 0 jusqu'à ce que i soit inférieur à 26. À l'intérieur de la boucle, vérifiez si vec[i] est inférieur à high, puis définissez high sur vec[i] et c sur 'a' + i.
  • Retournez c

    • pour imprimer les résultats.
    • Exemple
    • #include <bits/stdc++.h>
      using namespace std;
      char maximum(const vector<int>& vec){
         int high = 0;
         char c;
         for(int i = 0; i < 26; i++){
            if(vec[i] > high){
               high = vec[i];
               c = &#39;a&#39; + i;
            }
         }
         return c;
      }
      string Rearrangement(string str, int length){
         int size = (length + 1) / 2;
         vector<int> vec(26, 0);
         string ptr(length, &#39; &#39;);
         int temp = 0;
         for(auto it : str){
            vec[it - &#39;a&#39;]++;
         }
         char ch = maximum(vec);
         int total = vec[ch - &#39;a&#39;];
         if(total > size){
            return "";
         }
         while(total){
            ptr[temp] = ch;
            temp = temp + 2;
            total--;
         }
         vec[ch - &#39;a&#39;] = 0;
         for(int i = 0; i < 26; i++){
            while (vec[i] > 0){
               temp = (temp >= length) ? 1 : temp;
               ptr[temp] = &#39;a&#39; + i;
               temp = temp + 2;
               vec[i]--;
            }
         }
         return ptr;
      }
      int main(){
         string str = "itinn";
         int length = str.length();
         if(length == 0){
            cout<<"Please enter a valid string";
         }
         string count = Rearrangement(str, length);
         if(count == ""){
            cout<<"Please enter a valid string";
         }
         else{
            cout<<"Rearrangement of characters in a string such that no two adjacent are same is: "<<count;
         }
         return 0;
      }
      Copier après la connexion

      Output

    • Si nous exécutons le code ci-dessus, la sortie suivante sera générée
    Rearrangement of characters in a string such that no two adjacent are same is: initn
    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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Modifier une chaîne en réorganisant les voyelles en fonction de leur position d'index dans la chaîne Modifier une chaîne en réorganisant les voyelles en fonction de leur position d'index dans la chaîne Sep 06, 2023 pm 06:53 PM

Dans cet article, nous verrons comment modifier une chaîne donnée en C++ en réorganisant les voyelles par ordre alphabétique à leurs indices respectifs. Nous expliquerons également les méthodes utilisées pour résoudre ce problème et fournirons des exemples avec des cas de test. Énoncé du problème Étant donné une chaîne, réorganisez les voyelles à leurs indices respectifs par ordre alphabétique. Les consonnes de la chaîne doivent conserver leur ordre d'origine. Par exemple, étant donné la chaîne « tutorialspoint », le résultat devrait être « tatiriolspount ». Méthode Ce problème peut être résolu à l'aide d'un algorithme simple. Nous pouvons d’abord créer une chaîne distincte contenant toutes les voyelles de la chaîne donnée dans leur ordre respectif. Nous pouvons ensuite trier cette chaîne par ordre alphabétique. enfin,

Vérifie si une permutation d'une chaîne donnée est lexicographiquement supérieure à une autre chaîne donnée Vérifie si une permutation d'une chaîne donnée est lexicographiquement supérieure à une autre chaîne donnée Sep 22, 2023 am 08:41 AM

Nous avons reçu deux chaînes et devons vérifier si une permutation des chaînes données existe afin qu'une permutation puisse avoir des caractères plus grands que l'autre permutation au i-ème index. Nous pouvons résoudre le problème en triant la chaîne et en comparant chaque caractère de la chaîne un par un. Alternativement, nous pouvons utiliser les fréquences de caractères des deux chaînes pour résoudre le problème. Énoncé du problème - On nous donne des chaînes str1 et str2 de longueur N. Nous devons vérifier s'il existe des permutations de chaînes telles que l'une soit lexicographiquement plus grande que l'autre. Cela signifie que toute permutation doit avoir un caractère au i-ème index qui est supérieur au caractère au i-ème index d'une autre permutation de chaîne. Exemple d'entrée -str1=&quot

Disposez les chaînes de manière à ce que le nombre de caractères qu'elles contiennent soit supérieur au nombre de caractères adjacents. Disposez les chaînes de manière à ce que le nombre de caractères qu'elles contiennent soit supérieur au nombre de caractères adjacents. Sep 24, 2023 am 11:09 AM

La manipulation des chaînes est essentielle dans divers scénarios de résolution de problèmes. La permutation d'une chaîne donnée optimise le nombre de caractères supérieur au nombre de caractères adjacents. Il s'agit d'un casse-tête intéressant qui nécessite de réorganiser les caractères d'une chaîne pour générer autant de paires de caractères adjacents que possible, où se trouvent les caractères. ceux de gauche sont plus petits que les caractères de droite. Méthodes Il existe plusieurs façons de résoudre les permutations de chaînes où le nombre maximum de caractères est supérieur au nombre de caractères directement adjacents. Méthode 1-Retour en arrière et élagage-Méthode 2-Programmation dynamique-Méthode 3-Algorithme de tas-Méthode 4-Ordre du dictionnaire avec élagage-Méthode 1 : Retour en arrière et élagage Utilisez l'algorithme de retour en arrière pour générer toutes les permutations de la chaîne. A chaque étape, vérifiez si l'arrangement actuel comporte plus de caractères que ses voisins supérieurs au maximum trouvé jusqu'à présent. Sinon, taillez tôt

Réorganiser les caractères dans une chaîne de sorte que deux caractères adjacents soient différents, implémenté en C++ Réorganiser les caractères dans une chaîne de sorte que deux caractères adjacents soient différents, implémenté en C++ Aug 26, 2023 pm 10:37 PM

On nous donne une chaîne, disons str, la longueur peut être n'importe quelle valeur. La tâche consiste à réorganiser la chaîne donnée afin qu'aucun caractère adjacent identique ne s'aligne dans la chaîne résultante. Examinons différents scénarios d'entrée et de sortie : input - string str="itinn" output - réorganisez les caractères de la chaîne afin que deux caractères adjacents soient différents, le résultat est : initn. Explication - On nous donne une variable de type chaîne, en supposant qu'elle soit str. Nous allons maintenant réorganiser les caractères de la chaîne d'entrée de telle sorte que

Réorganiser les caractères pour former un palindrome (si possible) en C++ Réorganiser les caractères pour former un palindrome (si possible) en C++ Sep 09, 2023 pm 03:57 PM

On nous donne une chaîne 'str' d'une longueur donnée. La tâche consiste à réorganiser les caractères afin que la sortie devienne une chaîne palindrome sans ajouter ni supprimer de caractères de la chaîne d'entrée donnée. Une chaîne palindrome, c'est lorsque les caractères sont disposés de telle manière qu'ils sonnent de la même manière du début à la fin. Examinons différents scénarios d'entrée et de sortie pour cela - Entrée - Chaîne str="itnin" Sortie - Le réarrangement des caractères pour former une chaîne palindrome si possible est : nitin Explication - On nous donne une variable de type chaîne, supposée être str. Nous allons maintenant réorganiser les caractères de la chaîne d'entrée pour qu'elle devienne

Réorganiser un tableau pour que la somme des produits de paires d'éléments consécutives soit minimale, écrit en C++ Réorganiser un tableau pour que la somme des produits de paires d'éléments consécutives soit minimale, écrit en C++ Aug 26, 2023 am 10:57 AM

Nous avons un tableau de types entiers positifs, disons arr[], de n'importe quelle taille. La tâche consiste à réorganiser le tableau de telle sorte que lorsque nous multiplions un élément avec ses éléments adjacents, puis ajoutons tous les éléments résultants, la plus petite somme soit renvoyée. Examinons différentes situations d'entrée et de sortie : Entrée -intarr[]={2,5,1,7,5,0,1,0} Sortie -Réorganiser le tableau pour minimiser la somme, qui est le produit d'une paire consécutive d'éléments Explication pour : 70505121 - Nous avons un tableau d'entiers de taille 8. Maintenant, nous allons réorganiser le tableau, qui est 70505121. Nous vérifierons si la somme minimale est retournée qui est 7*0+5*0+5

Comment réorganiser les programmes dans le menu Démarrer du système Win10 Comment réorganiser les programmes dans le menu Démarrer du système Win10 Jul 18, 2023 am 10:17 AM

Comment réorganiser les programmes dans le menu démarrer du système win10 ? De nombreux amis n'en savent peut-être pas grand-chose. Si vous ne savez pas comment réorganiser, l'éditeur ci-dessous a compilé les méthodes de configuration pour réorganiser les programmes dans le menu Démarrer du système Win10. Suivez l'éditeur et jetez un œil ci-dessous ! ! Comment réorganiser les programmes dans le menu Démarrer dans le système Win10 1. Mettez à jour le système vers la version Win1010156 pour utiliser cette fonction ; 2. Cliquez sur l'icône du menu Démarrer, puis cliquez sur [Toutes les applications] ; , puis cliquez sur l'icône [&] en haut pour pouvoir saisir l'endroit où vous définissez l'ordre de tri. 4. Choisissez la lettre initiale ou ;

Réorganiser et mettre à jour les éléments du tableau en fonction d'une requête donnée Réorganiser et mettre à jour les éléments du tableau en fonction d'une requête donnée Sep 14, 2023 pm 04:29 PM

Dans cette question, nous exécuterons la requête donnée sur les éléments du tableau. La requête contient une boucle de rotation à gauche, de rotation à droite et de mise à jour des éléments du tableau. La partie logique de la résolution du problème est la rotation du tableau. Un moyen simple de faire pivoter un tableau vers la gauche consiste à remplacer chaque élément par l’élément suivant et le dernier élément par le premier élément. Nous pouvons utiliser la structure de données deque pour faire pivoter le tableau efficacement. Énoncé du problème - On nous donne un tableau arr[] contenant des valeurs entières. De plus, nous recevons un tableau requêtes[] contenant K requêtes. Nous devons exécuter chaque requête donnée dans request[] sur les éléments du tableau arr[] selon les règles suivantes. {0} : effectue une rotation circulaire vers la gauche sur un tableau. {1) - Entourez le tableau

See all articles