C++ bài 18.B4: Slime
Có \(N\) con slime xếp hàng từ trái sang phải. Màu sắc của các con smile này sẽ được cho dưới dạng một chuỗi \(S\) có độ dài \(N\) gồm các chữ cái tiếng Anh in thường. Con smile thứ \(i\) tính từ trái sang phải có màu tương ứng với ký tự thứ \(i\) trong \(S\).
Các con smile liền kề nhau có cùng màu sẽ hợp nhất thành một con smile lớn hơn mà không thay đổi màu sắc. Nếu có con smile nào đó liền kề với nhóm này trước khi hợp nhất, thì con smile đó giờ đây sẽ liền kề với con smile lớn mới.
Cuối cùng, sẽ có bao nhiêu con smile?
Ràng buộc
\(1 \leq N \leq 10^5\)
\(|S| = N\)
\(S\) bao gồm các chữ cái tiếng Anh in thường.
Định dạng nhập
Dữ liệu nhập được cung cấp từ đầu vào chuẩn theo định dạng sau:
\(N\)
\(S\)
Định dạng xuất
In ra số lượng con smile cuối cùng.
Ví dụ:
Input
10
aabbbbaaca
Output
5
Cuối cùng, các con smile này sẽ hợp nhất thành abaca.
Input
5
aaaaa
Output
1
Tất cả các con smile sẽ hợp nhất thành một con.
Giải thích ví dụ mẫu:
Ví dụ 1:
- Input:
10 aabbbbaaca
- Giải thích: Các slime sẽ hợp nhất thành "abaca", tổng cộng là 5 slime cuối cùng.
Ví dụ 2:
- Input:
5 aaaaa
- Giải thích: Tất cả slime cùng màu sẽ hợp nhất thành 1 slime duy nhất.
Lời giải bài tập này: Tại đây
Group giải đáp thắc mắc: Lập trình 24h
Fanpage CLB: CLB lập trình Full House- Việt Nam
Youtube: CLB Lập Trình Full House
Comments