Trong bài toán này, chúng ta được cho một chuỗi và chúng ta phải tìm chuỗi con từ chuỗi đã cho. Chuỗi con được tìm thấy phải bắt đầu bằng nguyên âm và kết thúc bằng ký tự không đổi.
Một chuỗi là một mảng các ký tự.
Chuỗi con sẽ được tạo ra trong vấn đề này có thể được tạo ra bằng cách xóa một số ký tự của chuỗi. Và không thay đổi thứ tự của chuỗi.
Đầu vào:‘abc’ Đầu ra:ab, ac, abc
Để giải quyết vấn đề này, chúng tôi sẽ lặp lại chuỗi và sửa các nguyên âm và kiểm tra chuỗi tiếp theo. Hãy xem một thuật toán để tìm ra giải pháp -
Thuật toán
Bước 1:Lặp lại từng ký tự của chuỗi, với biến i.Bước 2:Nếu ký tự thứ i là một nguyên âm.Bước 3:Nếu ký tự thứ j là phụ âm.Bước 4:Thêm vào HashSet, chuỗi con từ Ký tự đầu tiên đến ký tự thứ j.Bước 5:Lặp lại các bước sau và tìm các chuỗi con từ chuỗi.
Ví dụ
#includeusing namespace std; set st; bool isaVowel (char c); bool isaConsonant (char c); void findSubSequence (string str); int main () {string s ="abekns"; findSubSequence (các); cout <<"Chuỗi con được tạo là:\ n"; for (auto i:st) cout < =i; j--) {if (isaConsonant (str [j])) {string str_sub =str.substr (i, j + 1); st.insert (str_sub); for (int k =1; k Đầu ra
Chuỗi con được tạo là -
>