Table des matières
Regardons différents scénarios d'entrée et de sortie pour cela -
La méthode utilisée dans le programme ci-dessous est la suivante
Exemple
Output
Maison développement back-end C++ 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
字符 重新排列 palindrome

Réorganiser les caractères pour former un palindrome (si possible) en C++

Nous recevons 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.

Regardons différents scénarios d'entrée et de sortie pour cela -

Input - String str = "itnin"

Output - Si possible, le réarrangement des caractères pour former une chaîne palindrome est : nitin

Explication - On nous donne une variable de type string, disons str. Nous allons maintenant réorganiser les caractères de la chaîne d'entrée pour en faire une chaîne palindrome sinon

Il renverra « NON POSSIBLE » si possible. Par conséquent, la sortie donnée par la chaîne d’entrée est « nitin ».

Input - String str = "baaaba"

Output - Le résultat d'un éventuel réarrangement de caractères pour former un palindrome est : aabbaa

Explication - On nous donne une variable de type string, disons str. Nous allons maintenant réorganiser les caractères de la chaîne d'entrée pour en faire une chaîne palindrome et renvoyer 'NON POSSIBLE' si cela n'est pas possible. Par conséquent, la sortie donnée par la chaîne d’entrée est « aabbaa ».

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.

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

  • À l'intérieur de la fonction Rearrangement(arr, length)

    • créez une variable de type unordered_map nommée 'um', qui stocke les paires clé-valeur de types char et entier.

    • Déclarez un total de variable de type entier et définissez-le sur 0.

    • Créez une variable de type caractère 'ch' et des variables de type chaîne str_1 et str_2.

    • Commencez par une boucle de i à 0 jusqu'à ce que i soit inférieur à la longueur. Dans la boucle, définissez um[str[i]] en incrémentant la valeur 1.

    • Démarrez la boucle FOR pour parcourir la carte 'um'. À l'intérieur de la boucle, vérifiez SI it.second % 2 n'est pas égal à 0, puis augmentez le total de 1 et définissez ch dessus.first.

    • Vérifiez SI le total est supérieur à 1 ou total = 1 et longueur % 2 = 0, alors 0 est renvoyé.

    • Démarrez la boucle FOR pour parcourir la carte 'um'. Dans la boucle, str(it.second / 2, it.first) est défini sur str, str_1 est défini sur str_1 + str et str_2 est défini sur str + str_2.

    • Vérifiez SI total = 1, puis retournez str_1 + ch + str_2. Sinon, str_1 + str_2 est renvoyé.

  • Imprimez les résultats.

Exemple

#include <bits/stdc++.h>
using namespace std;
string Rearrangement(string str, int length){
   unordered_map<char, int> um;
   int total = 0;
   char ch;
   string str_1 = "";
   string str_2 = "";

   for (int i = 0; i < length; i++){
      um[str[i]]++;
   }
   for(auto it : um){
      if(it.second % 2 != 0){
         total++;
         ch = it.first;
      }
   }
   if(total > 1 || total == 1 && length % 2 == 0){
      return 0;
   }
   for(auto it : um){
      string str(it.second / 2, it.first);
      str_1 = str_1 + str;
      str_2 = str + str_2;
   }
   if(total == 1){
      return str_1 + ch + str_2;
   }
   else{
      return str_1 + str_2;
   }
}
int main(){
   string str = "itnin";
   int length = str.size();
   cout<<"Rearrangement of characters to form palindrome if possible is: "<<Rearrangement(str, length);
   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 to form palindrome if possible is: nitin
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
3 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)

Utilisez la fonction Character.isDigit() de Java pour déterminer si un caractère est un nombre Utilisez la fonction Character.isDigit() de Java pour déterminer si un caractère est un nombre Jul 27, 2023 am 09:32 AM

Utilisez la fonction Character.isDigit() de Java pour déterminer si un caractère est un caractère numérique. Les caractères sont représentés sous la forme de codes ASCII en interne dans l'ordinateur. Chaque caractère a un code ASCII correspondant. Parmi eux, les valeurs du code ASCII correspondant aux caractères numériques 0 à 9 sont respectivement 48 à 57. Pour déterminer si un caractère est un nombre, vous pouvez utiliser la méthode isDigit() fournie par la classe Character en Java. La méthode isDigit() est de la classe Character

Comment taper des flèches dans Word Comment taper des flèches dans Word Apr 16, 2023 pm 11:37 PM

Comment utiliser la correction automatique pour saisir des flèches dans Word L'un des moyens les plus rapides de saisir des flèches dans Word consiste à utiliser les raccourcis de correction automatique prédéfinis. Si vous tapez une séquence spécifique de caractères, Word convertit automatiquement ces caractères en symboles fléchés. Vous pouvez dessiner de nombreux styles de flèches différents en utilisant cette méthode. Pour taper une flèche dans Word à l'aide de la correction automatique : Déplacez votre curseur vers l'emplacement du document où vous souhaitez que la flèche apparaisse. Tapez l'une des combinaisons de caractères suivantes : Si vous ne souhaitez pas que ce que vous tapez soit remplacé par un symbole de flèche, appuyez sur la touche Retour arrière de votre clavier pour

Comment appliquer les options de formatage en exposant et en indice dans Microsoft Excel Comment appliquer les options de formatage en exposant et en indice dans Microsoft Excel Apr 14, 2023 pm 12:07 PM

Un exposant est un ou plusieurs caractères, lettres ou chiffres, que vous devez définir légèrement au-dessus de la ligne normale de texte. Par exemple, si vous devez écrire 1er, la lettre st doit être légèrement plus haute que le caractère 1. De même, un indice est un groupe de caractères ou un caractère unique et doit être défini légèrement à un niveau inférieur au niveau de texte normal. Par exemple, lorsque vous écrivez une formule chimique, vous devez placer les nombres sous la ligne normale de caractères. Les captures d'écran suivantes montrent quelques exemples de formatage en exposant et en indice. Même si cela peut sembler une tâche ardue, appliquer le formatage en exposant et en indice à votre texte est en réalité assez simple. Dans cet article, nous expliquerons en quelques étapes simples comment formater facilement du texte en exposant ou en indice. J'espère que vous avez apprécié la lecture de cet article. Comment appliquer l'exposant dans Excel

Comment saisir des caractères étendus, tels que le symbole du degré, sur iPhone et Mac ? Comment saisir des caractères étendus, tels que le symbole du degré, sur iPhone et Mac ? Apr 22, 2023 pm 02:01 PM

Votre clavier physique ou numérique offre un nombre limité d'options de caractères en surface. Cependant, il existe plusieurs façons d'accéder aux lettres accentuées, aux caractères spéciaux et bien plus encore sur iPhone, iPad et Mac. Le clavier iOS standard vous donne un accès rapide aux lettres majuscules et minuscules, aux chiffres standard, à la ponctuation et aux caractères. Bien sûr, il existe de nombreux autres personnages. Vous pouvez choisir entre des lettres avec des signes diacritiques et des points d'interrogation à l'envers. Vous êtes peut-être tombé sur un caractère spécial caché. Sinon, voici comment y accéder sur iPhone, iPad et Mac. Comment accéder aux caractères étendus sur iPhone et iPad Obtenir des caractères étendus sur votre iPhone ou iPad est très simple. Dans "Informations", "

Manière correcte d'afficher les caractères chinois dans matplotlib Manière correcte d'afficher les caractères chinois dans matplotlib Jan 13, 2024 am 11:03 AM

Afficher correctement les caractères chinois dans matplotlib est un problème souvent rencontré par de nombreux utilisateurs chinois. Par défaut, matplotlib utilise des polices anglaises et ne peut pas afficher correctement les caractères chinois. Pour résoudre ce problème, nous devons définir la police chinoise correcte et l'appliquer à matplotlib. Vous trouverez ci-dessous quelques exemples de code spécifiques pour vous aider à afficher correctement les caractères chinois dans matplotlib. Tout d’abord, nous devons importer les bibliothèques requises : importmatplot

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,

Comment utiliser Golang pour déterminer si un caractère est une lettre Comment utiliser Golang pour déterminer si un caractère est une lettre Dec 23, 2023 am 11:57 AM

Comment utiliser Golang pour déterminer si un caractère est une lettre. Dans Golang, déterminer si un caractère est une lettre peut être obtenu en utilisant la fonction IsLetter du package Unicode. La fonction IsLetter vérifie si le caractère donné est une lettre. Ensuite, nous présenterons en détail comment utiliser Golang pour écrire du code afin de déterminer si un caractère est une lettre. Tout d’abord, vous devez créer un nouveau fichier Go dans lequel écrire le code. Vous pouvez nommer le fichier « main.go ». code

Concernant la représentation des caractères de la touche Entrée en Java, de laquelle s'agit-il ? Concernant la représentation des caractères de la touche Entrée en Java, de laquelle s'agit-il ? Mar 29, 2024 am 11:48 AM

La représentation alphabétique de la touche Entrée en Java est `. En Java, ` représente un caractère de nouvelle ligne, et lorsque ce caractère est rencontré, la sortie du texte sera renvoyée à la ligne. Voici un exemple de code simple qui montre comment utiliser `` pour représenter la touche Entrée : publicclassMain{publicstaticvoidmain(String[]args){System.out.println("Ceci est la première ligne de ce

See all articles