Table des matières
Valeur ASCII
Énoncé du problème
Explication du problème
Solution 1 Utiliser le vecteur de fréquence
Algorithme
Exemple
Sortie
Complexité du code ci-dessus
Solution 2 Solution utilisant la fonction de tri intégrée
Conclusion
Maison développement back-end C++ Trier les chaînes par valeur ASCII du caractère

Trier les chaînes par valeur ASCII du caractère

Sep 07, 2023 pm 08:29 PM
字符 ascii 排序

Trier les chaînes par valeur ASCII du caractère

Valeur ASCII

ASCII (American Standard Code for Information Interchange) est le format de codage de caractères le plus courant pour les données texte sur les ordinateurs et sur Internet. Dans les données codées ASCII standard, 256 lettres, chiffres ou caractères spéciaux supplémentaires et codes de contrôle ont des valeurs uniques.

Énoncé du problème

Maintenant, dans ce problème, nous devons trouver la chaîne triée par ordre croissant en fonction de la valeur ASCII du caractère, où la chaîne sera l'entrée qui nous sera donnée par l'utilisateur. Voyons comment nous devrions résoudre ce problème.

Essayons de comprendre ce problème à l'aide de quelques exemples.

Entrée - s = "$%7wjk()"

Sortie - « $%()7jkw »

Explication - Les valeurs ASCII des caractères de la chaîne donnée sont les suivantes -

$ -> 36
% -> 37
( -> 40
) -> 41
7 -> 55
j -> 106
k -> 107
w -> 119
Copier après la connexion

Ainsi, par ordre croissant des valeurs du code ASCII, la chaîne deviendra "$%()7jkw"

Entrez - s = "#m 0f )nk"

Sortie - « #)0fkmn »

Explication - Les valeurs ASCII des caractères de la chaîne donnée sont les suivantes -

(space) -> 32
# -> 35
) -> 41
0 -> 48
f -> 102
k -> 107
m -> 109
n -> 110
Copier après la connexion

Ainsi, par ordre croissant des valeurs du code ASCII, la chaîne deviendra "#)0fkmn"

Explication du problème

Essayons de comprendre le problème et de trouver une solution. Nous savons qu'il y a 256 caractères dans la table ASCII, chacun ayant une valeur ou une position unique. Notre objectif fondamental est donc de trier les personnages en conséquence. Nous pouvons utiliser la fonction de tri intégrée en utilisant des fonctions externes qui peuvent être utilisées pour atteindre notre objectif. Une autre approche consiste à créer un vecteur de fréquence et à stocker la fréquence de chaque caractère dans ce tableau. En utilisant ce vecteur de fréquence et la valeur ASCII, nous pouvons obtenir la nouvelle chaîne.

Solution 1 Utiliser le vecteur de fréquence

Algorithme

  • Créez un vecteur de fréquence de taille 256 car le nombre total de caractères dans la table ASCII est de 256 et commencez tout le vecteur par zéro

  • Exécutez une boucle pour stocker la fréquence de chaque caractère d'une chaîne donnée

  • Définissez maintenant une chaîne de sortie initialement vide

  • Exécutez une autre boucle pour parcourir le vecteur de fréquence, afin que nous puissions obtenir la chaîne de sortie en transtypant la i-ème position Frequency_vector[i]

  • Renvoyer la chaîne de sortie comme résultat final

Exemple

Voici l'implémentation du programme C++ de la méthode ci-dessus :

#include <bits/stdc++.h>
using namespace std;
// Function to Sort the string as per ASCII values of the characters
string Helper(string s){
    // Define the size of the given string
	int size = s.length();
	// Define a frequency vector of size 256, which is the same as the size of the characters as per the ASCII table, and initiate the value of the vector as 0
	vector<int> v(256, 0);
	// Run a loop to count the frequency of each character of the string
	for (int i = 0; i < size; i++) {
		v[s[i]]++;
	}	
	// Declare a string, initially empty, to find the final output
	string ans = "";
	// Run another loop to get the final output in accordance with the ASCII table
	for (int i = 0; i < 256; i++) {
		for (int j = 0; j < v[i]; j++)
		// Typecast the integer value to the character value to include it in the loop
			ans = ans + (char)i;
	}
	// Return the final output
	return ans;
}
int main(){
    // Give input as a string by the user
	string s = "$%7wjk()";
	// Call Helper function to perform the remaining tasks
	cout<< "The sorted string as per ASCII values of the characters is: " << Helper(s);
	return 0;
}
Copier après la connexion

Sortie

The sorted string as per ASCII values of the characters is: $%()7jkw
Copier après la connexion
Copier après la connexion

Complexité du code ci-dessus

  • Complexité temporelle - O(n); où n est la taille de la chaîne. Ici, la complexité temporelle réelle est O(n * 256), mais nous pouvons la considérer comme O(n) car 256 peut être considéré comme une constante comme k, tandis que O(k * n) n'est considéré que comme O(n ) .

  • Complexité spatiale - O(256) ; car le seul espace supplémentaire occupé ici est l'espace pour le tableau de fréquences, qui a une taille de 256.

Solution 2 Solution utilisant la fonction de tri intégrée

Algorithme

  • Définissez une fonction de comparaison externe, utilisée dans la fonction de tri pour trier les caractères en fonction des valeurs ASCII, c'est-à-dire renvoyer les caractères dont la valeur de conversion de type int est inférieure à celle des autres caractères.

  • Utilisez maintenant la fonction de tri intégrée dans la fonction d'assistance et utilisez un paramètre supplémentaire (fonction de comparaison) pour obtenir la commande correctement.

  • Appelez la fonction d'assistance et obtenez la sortie de chaîne finale.

Exemple

#include "bits/stdc++.h"
using namespace std;
// Comparison Function to sort the string as per ASCII values of the characters
bool comparison(char ch1, char ch2){ 
    return int(ch1) <= int(ch2);
}
// Function to sort the string as per ASCII values of the characters
string Helper(string s){
	// Sort the string s with the help of the inbuilt function sort()
	sort(s.begin(), s.end(), comparison);
	// Return the final output string s
	return s;
}
int main(){
    // Give input as a string by the user
	string s = "$%7wjk()";
	// Call Helper function to perform the remaining tasks
	cout<< "The sorted string as per ASCII values of the characters is: " << Helper(s);
	return 0;
}
Copier après la connexion

Sortie

The sorted string as per ASCII values of the characters is: $%()7jkw
Copier après la connexion
Copier après la connexion

Complexité du code ci-dessus

  • Complexité temporelle : O(log(n)); comme nous le savons tous, la fonction de tri intégrée prend du temps O(n * log(n)) pour exécuter le code. Dans cette méthode, nous utilisons la fonction de tri intégrée en utilisant une fonction de comparaison supplémentaire qui triera les caractères en fonction de cette fonction.

  • Complexité spatiale : O(1); Dans le code ci-dessus, nous ne stockons aucune variable dans une structure de données.

Conclusion

Dans cet article, nous trouvons une chaîne triée en fonction de la valeur ASCII des caractères par ordre croissant. Nous pouvons résoudre ce problème de deux manières. Tout d'abord, nous pouvons créer un vecteur de fréquence de taille 256 (le même nombre de caractères dans la table ASCII) et stocker toutes les fréquences de chaque caractère, puis itérer par derrière pour obtenir la chaîne souhaitée. Une autre façon consiste à utiliser la fonction de tri intégrée, à l'aide de paramètres supplémentaires transmis dans la fonction de tri.

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
4 Il y a quelques semaines 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)

Comment trier les photos par date prise sous Windows 11/10 Comment trier les photos par date prise sous Windows 11/10 Feb 19, 2024 pm 08:45 PM

Cet article explique comment trier les images en fonction de la date de prise de vue dans Windows 11/10 et explique également ce qu'il faut faire si Windows ne trie pas les images par date. Dans les systèmes Windows, organiser correctement les photos est crucial pour faciliter la recherche des fichiers image. Les utilisateurs peuvent gérer des dossiers contenant des photos en fonction de différentes méthodes de tri telles que la date, la taille et le nom. De plus, vous pouvez définir l'ordre croissant ou décroissant selon vos besoins pour organiser les fichiers de manière plus flexible. Comment trier les photos par date de prise sous Windows 11/10 Pour trier les photos par date de prise sous Windows, procédez comme suit : Ouvrez Images, Bureau ou tout dossier dans lequel vous placez des photos. Dans le menu du ruban, cliquez sur

Comment trier les e-mails par expéditeur, sujet, date, catégorie, taille dans Outlook Comment trier les e-mails par expéditeur, sujet, date, catégorie, taille dans Outlook Feb 19, 2024 am 10:48 AM

Outlook propose de nombreux paramètres et fonctionnalités pour vous aider à gérer votre travail plus efficacement. L’une d’elles est l’option de tri qui vous permet de classer vos emails en fonction de vos besoins. Dans ce didacticiel, nous allons apprendre à utiliser la fonction de tri d'Outlook pour organiser les e-mails en fonction de critères tels que l'expéditeur, l'objet, la date, la catégorie ou la taille. Cela vous permettra de traiter et de trouver plus facilement des informations importantes, ce qui vous rendra plus productif. Microsoft Outlook est une application puissante qui facilite la gestion centralisée de vos plannings de messagerie et de calendrier. Vous pouvez facilement envoyer, recevoir et organiser des e-mails, tandis que la fonctionnalité de calendrier intégrée facilite le suivi de vos événements et rendez-vous à venir. Comment être dans Outloo

Développement PHP : Comment implémenter les fonctions de tri et de pagination des données des tables Développement PHP : Comment implémenter les fonctions de tri et de pagination des données des tables Sep 20, 2023 am 11:28 AM

Développement PHP : comment implémenter des fonctions de tri et de pagination des données de table Dans le développement Web, le traitement de grandes quantités de données est une tâche courante. Pour les tableaux devant afficher une grande quantité de données, il est généralement nécessaire de mettre en œuvre des fonctions de tri et de pagination des données pour offrir une bonne expérience utilisateur et optimiser les performances du système. Cet article explique comment utiliser PHP pour implémenter les fonctions de tri et de pagination des données de table et donne des exemples de code spécifiques. La fonction de tri implémente la fonction de tri dans le tableau, permettant aux utilisateurs de trier par ordre croissant ou décroissant selon différents champs. Ce qui suit est un formulaire de mise en œuvre

Comment la méthode Arrays.sort() en Java trie-t-elle les tableaux par comparateur personnalisé ? Comment la méthode Arrays.sort() en Java trie-t-elle les tableaux par comparateur personnalisé ? Nov 18, 2023 am 11:36 AM

Comment la méthode Arrays.sort() en Java trie-t-elle les tableaux par comparateur personnalisé ? En Java, la méthode Arrays.sort() est une méthode très utile pour trier les tableaux. Par défaut, cette méthode trie par ordre croissant. Mais parfois, nous devons trier le tableau selon nos propres règles définies. À ce stade, vous devez utiliser un comparateur personnalisé (Comparator). Un comparateur personnalisé est une classe qui implémente l'interface Comparator.

Programme C++ : réorganiser la position des mots par ordre alphabétique Programme C++ : réorganiser la position des mots par ordre alphabétique Sep 01, 2023 pm 11:37 PM

Dans ce problème, une chaîne est donnée en entrée et nous devons trier les mots apparaissant dans la chaîne par ordre lexicographique. Pour ce faire, nous attribuons un index commençant à 1 à chaque mot de la chaîne (séparés par des espaces) et obtenons le résultat sous forme d'index triés. String={"Hello","World"}"Hello"=1 "World"=2 Puisque les mots dans la chaîne d'entrée sont dans l'ordre lexicographique, la sortie imprimera "12". Examinons quelques scénarios d'entrée/résultat - en supposant que tous les mots de la chaîne d'entrée sont identiques, regardons les résultats - Entrée :{"hello","hello","hello"}Résultat : 3 Résultat obtenu

Comment trier les scores WPS Comment trier les scores WPS Mar 20, 2024 am 11:28 AM

Dans notre travail, nous utilisons souvent le logiciel wps. Il existe de nombreuses façons de traiter les données dans le logiciel wps, et les fonctions sont également très puissantes. Nous utilisons souvent des fonctions pour trouver des moyennes, des résumés, etc. des méthodes qui peuvent être utilisées pour les données statistiques ont été préparées pour tout le monde dans la bibliothèque du logiciel WPS. Ci-dessous, nous présenterons les étapes à suivre pour trier les scores dans WPS. Après avoir lu ceci, vous pourrez tirer les leçons de cette expérience. 1. Ouvrez d’abord le tableau qui doit être classé. Comme indiqué ci-dessous. 2. Entrez ensuite la formule =rank(B2, B2 : B5, 0) et assurez-vous de saisir 0. Comme indiqué ci-dessous. 3. Après avoir saisi la formule, appuyez sur la touche F4 du clavier de l'ordinateur. Cette étape consiste à changer la référence relative en référence absolue.

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

Comment trier les tableaux WPS pour faciliter les statistiques de données Comment trier les tableaux WPS pour faciliter les statistiques de données Mar 20, 2024 pm 04:31 PM

WPS est un logiciel bureautique très complet, comprenant l'édition de texte, les tableaux de données, les présentations PPT, les formats PDF, les organigrammes et d'autres fonctions. Parmi eux, ceux que nous utilisons le plus sont les textes, les tableaux et les démonstrations, et ce sont aussi ceux que nous connaissons le mieux. Dans notre travail d'étude, nous utilisons parfois des tableaux WPS pour établir des statistiques de données. Par exemple, l'école comptera les scores de chaque élève. Si nous devons trier manuellement les scores de tant d'élèves, ce sera vraiment un casse-tête. en fait, nous n'avons pas à nous inquiéter, car notre table WPS a une fonction de tri pour résoudre ce problème pour nous. Apprenons ensuite comment trier les WPS ensemble. Étapes de la méthode : Étape 1 : Nous devons d’abord ouvrir la table WPS qui doit être triée

See all articles