


Vérifie si les caractères d'une chaîne peuvent devenir non décroissants en remplaçant '_'
Sep 13, 2023 pm 08:41 PMDans cet article, nous aborderons un problème intéressant dans le domaine de la manipulation de chaînes : comment vérifier si les caractères d'une chaîne donnée peuvent être changés dans un ordre non décroissant en remplaçant le caractère "?" Cette question vous offre une excellente opportunité de mettre en pratique vos compétences en manipulation de chaînes et en vérification de conditions en C++.
Énoncé du problème
Étant donné une chaîne composée de caractères alphabétiques et de points d'interrogation (?), déterminez si les caractères peuvent être rendus non décroissants en remplaçant les « ? ».
La condition non décroissante signifie que pour deux caractères adjacents dans la chaîne, la valeur ASCII du deuxième caractère n'est pas inférieure à la valeur ASCII du premier.Méthode
Nous utiliserons une méthode simple pour résoudre ce problème −
- Parcourez la chaîne de gauche à droite.
- Si un '?' est rencontré, remplacez-le par le caractère qui l'a précédé (sauf s'il s'agit du premier caractère, auquel cas remplacez-le par 'a').
- Enfin, vérifiez si la chaîne résultante n'est pas décroissante.
#include<bits/stdc++.h>
using namespace std;
bool checkNonDecreasing(string s) {
int n = s.size();
if (s[0] == '?') s[0] = 'a';
for (int i = 1; i < n; i++) {
if (s[i] == '?') s[i] = s[i-1];
if (s[i] < s[i-1]) return false;
}
return true;
}
int main() {
string s = "ac?b";
bool result = checkNonDecreasing(s);
if(result)
cout << "Yes, the string can be made non-decreasing by replacing '?'s.\n";
else
cout << "No, the string cannot be made non-decreasing by replacing '?'s.\n";
return 0;
}
Copier après la connexion
Sortie#include<bits/stdc++.h> using namespace std; bool checkNonDecreasing(string s) { int n = s.size(); if (s[0] == '?') s[0] = 'a'; for (int i = 1; i < n; i++) { if (s[i] == '?') s[i] = s[i-1]; if (s[i] < s[i-1]) return false; } return true; } int main() { string s = "ac?b"; bool result = checkNonDecreasing(s); if(result) cout << "Yes, the string can be made non-decreasing by replacing '?'s.\n"; else cout << "No, the string cannot be made non-decreasing by replacing '?'s.\n"; return 0; }
No, the string cannot be made non-decreasing by replacing '?'s.
Copier après la connexion
La fonction checkNonDecreasing prend en entrée une chaîne s et renvoie une valeur booléenne indiquant si les caractères de la chaîne peuvent être rendus non décroissants en remplaçant les '?'.No, the string cannot be made non-decreasing by replacing '?'s.
Dans ce cas de test, la chaîne d'entrée est "ac?b". La fonction checkNonDecreasing est appelée avec cette chaîne comme argument, et le résultat est une valeur booléenne qui est imprimée.
Conclusion
Vérifier si un caractère dans une chaîne peut être rendu non décroissant en remplaçant "?" est une question qui teste votre compréhension des opérations sur les chaînes et des valeurs ASCII. En pratiquant des questions comme celle-ci, vous pouvez renforcer votre capacité à gérer les chaînes en C++.
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!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

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)

Sujets chauds

Explication détaillée de la méthode de conversion du type int en chaîne en PHP

Comment déterminer si une chaîne Golang se termine par un caractère spécifié

Comment vérifier si une chaîne commence par un caractère spécifique en Golang ?

Comment répéter une chaîne dans le didacticiel de chaîne répétitive python_python

Comment résoudre le problème des caractères chinois tronqués lors de la conversion d'hexadécimaux en chaîne en PHP

Manipulation de chaînes PHP : un moyen pratique de supprimer efficacement les espaces

Techniques PHP pour supprimer les deux derniers caractères d'une chaîne

Comment convertir une chaîne en float en PHP
