[Buổi 20][Chuỗi][RDD] Bài 21: Slime


LÀM BÀI

Points: 15
Time limit: 1.0s
Memory limit: 20M

Author:
Problem types
Allowed languages
C++

Slime

Bối cảnh

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\).

Yêu cầu

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?

Input

Dữ liệu nhập được cung cấp từ đầu vào chuẩn theo định dạng sau:

\(N\)

\(S\)

Output

In ra số lượng con smile cuối cùng.

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.

Ví dụ 1

Input

10
aabbbbaaca

Output

5

Giải thích ví dụ

Cuối cùng, các con smile này sẽ hợp nhất thành abaca.

Ví dụ 2

Input

5
aaaaa

Output

1

Giải thích ví dụ

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.

Tất cả các con smile sẽ hợp nhất thành một con.

Thông tin học tập

  • Buổi: B20
  • Concepts: std::string, getline, index, find, substr, basic transformations
  • Giới hạn kiến thức: B01-B20
  • Time limit: 1 second
  • Memory limit: 20 MB
  • Point: 15

Comments

There are no comments at the moment.

Zalo