


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
- 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.
& vec) -
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 = 'a' + i; } } return c; } string Rearrangement(string str, int length){ int size = (length + 1) / 2; vector<int> vec(26, 0); string ptr(length, ' '); int temp = 0; for(auto it : str){ vec[it - 'a']++; } char ch = maximum(vec); int total = vec[ch - 'a']; if(total > size){ return ""; } while(total){ ptr[temp] = ch; temp = temp + 2; total--; } vec[ch - 'a'] = 0; for(int i = 0; i < 26; i++){ while (vec[i] > 0){ temp = (temp >= length) ? 1 : temp; ptr[temp] = 'a' + 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 connexionOutput
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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,

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="

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

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

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

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

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
