Maison  >  Article  >  développement back-end  >  Code C++ pour trouver deux sous-chaînes avec une sous-chaîne minimale

Code C++ pour trouver deux sous-chaînes avec une sous-chaîne minimale

WBOY
WBOYavant
2023-09-06 14:41:14905parcourir

Code C++ pour trouver deux sous-chaînes avec une sous-chaîne minimale

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.

Étapes

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

Exemple

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);
}

Input

"thelightsaber"

Output

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer