Maison >développement back-end >C++ >Vérifie si les caractères d'une chaîne peuvent devenir non décroissants en remplaçant '_'
Dans 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++.
É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
#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.
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
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!