Supposons que nous ayons une chaîne minuscule S, qui contient n caractères. Nous devons trouver deux non vides Sous-chaînes P et Q telles que −
P et Q sont toutes deux des sous-séquences de S
Pour chaque indice i, S[i] appartient à un et un seul de P et Q.
P est le plus petit possible lexicographiquement.
Donc, si l'entrée est S = "le sabre laser", alors la sortie sera de 10 car nous avons besoin de 2 rouges
Cahiers, 3 cahiers verts et 5 cahiers bleus.
Pour résoudre ce problème, nous suivrons les étapes suivantes :
c := S sort the array c a := position of (c[0]) in S delete c from S print c[0] and S
Voyons l'implémentation ci-dessous pour une meilleure compréhension −
#include <bits/stdc++.h> using namespace std; void solve(string S){ string c = S; sort(c.begin(), c.end()); int a = S.find(c[0]); S.erase(S.begin() + a); cout << c[0] << ", " << S << endl; } int main(){ string S = "thelightsaber"; solve(S); }
"thelightsaber"
a, thelightsber
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!