Computer >> Máy Tính >  >> Lập trình >> C ++

Mã C ++ để tìm hai chuỗi con với một chuỗi con tối thiểu

Giả sử chúng ta có một chuỗi chữ thường S với n ký tự. Chúng ta phải tìm hai chuỗi con không rỗng P và Q, sao cho -

  • Cả P và Q đều là dãy con của S

  • Đối với mỗi chỉ số i, S [i] thuộc đúng một trong P và Q.

  • P là từ vựng tối thiểu nhất có thể.

Vì vậy, nếu đầu vào giống như S ="thelightsaber", thì đầu ra sẽ là 10, vì chúng ta cần 2 sổ tay đỏ, 3 sổ ghi chép màu xanh lá cây và 5 sổ tay màu xanh lam.

Các bước

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

c := S
sort the array c
a := position of (c[0]) in S
delete c from S
print c[0] and S

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

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

Đầu vào

"thelightsaber"

Đầu ra

a, thelightsber