 
  Data Structure Data Structure
 Networking Networking
 RDBMS RDBMS
 Operating System Operating System
 Java Java
 MS Excel MS Excel
 iOS iOS
 HTML HTML
 CSS CSS
 Android Android
 Python Python
 C Programming C Programming
 C++ C++
 C# C#
 MongoDB MongoDB
 MySQL MySQL
 Javascript Javascript
 PHP PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
C++ code to find two substrings with one minimal substring
Suppose we have a lowercase string S with n characters. We have to find two non-empty substrings P and Q, such that −
- Both P and Q are subsequences of S 
- For each index i, S[i] belong to exactly one of P and Q. 
- P is lexicographically minimum as possible. 
So, if the input is like S = "thelightsaber", then the output will be 10, because we need 2 red notebooks, 3 green notebooks, and 5 blue notebooks.
Steps
To solve this, we will follow these steps −
c := S sort the array c a := position of (c[0]) in S delete c from S print c[0] and S
Example
Let us see the following implementation to get better understanding −
#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
Advertisements
 