01/10/2018, 08:52

Nhập input để xóa gia trị lặp lai trong string c++

Moi người cho em hỏi là làm thế nào để xóa một giá trị được lặp lại trong string nhưng chỉ xóa gia trị mà mình muốn xóa.

ví dụ như DDDAABBBXXX

thi em chỉ muốn xóa giá trị D bi lặp lai để có kết quả là DAABBBXXX

em thử dùng `input.erase(unique(input.begin(), input.end()), input.end());

nhưng nó lại xóa hết các giạ tri lặp kết quả là DABX

em cảm ơn nhiều ạ
`

Trần Hoàn viết 11:01 ngày 01/10/2018

Thuật toán nhé:

string XoáKýTựLặp(string DãyInput, char KýTựCầnXoá)
{
int Mark=0;
Duyệt từ đầu đến cuối, nếu gặp KýTựCầnXoá thì ghi lại vị trí của nó vào Mark, nếu không thì return DãyInput;
string Trước = phần chuỗi thuộc DãyInput trước Mark;
string Sau = phần chuỗi thuộc DãyInput sau Mark;
Xoá tất cả KýTựCầnXoá trong Trước và Sau;
return Trước + KýTựCầnXoá + Sau;
}
Đăng Trần viết 11:03 ngày 01/10/2018

các newbie nên học theo cách phân tích bài toán này nếu cảm thấy mình yếu ram :smile . Rõ như ban ngày rồi hỏi chi nữa em lật tài liệu làm thôi.

Khoa Le viết 10:53 ngày 01/10/2018

em có tài liệu thì lên đây hỏi làm gì:joy:

Bài liên quan
0