Angenommen, wir haben eine Kleinbuchstabenzeichenfolge S, die n Zeichen enthält. Wir müssen zwei nicht leere finden Teilzeichenfolgen P und Q mit −
P und Q sind beide Teilfolgen von S
Für jeden Index i gehört S[i] zu einem und nur einem von P und Q.
P ist lexikografisch möglichst klein.
Wenn also die Eingabe S = „thelightsaber“ ist, dann ist die Ausgabe 10, weil wir 2 rote benötigen
Notizbücher, 3 grüne Notizbücher und 5 blaue Notizbücher.
Um dieses Problem zu lösen, befolgen wir die folgenden Schritte:
c := S sort the array c a := position of (c[0]) in S delete c from S print c[0] and S
Sehen wir uns zum besseren Verständnis die Implementierung unten an –
#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
Das obige ist der detaillierte Inhalt vonC++-Code zum Suchen von zwei Teilzeichenfolgen mit einer minimalen Teilzeichenfolge. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!