
stoneOnLine
Có n
viên đá xếp thành một hàng ngang. Mỗi viên đá có 3
màu là đỏ, xanh lá và xanh lam. Mary không thích 2
viên đá cùng màu ở cạnh nhau, cô bé bắt đầu lấy một vài viên đá ra.
Cho chuỗi s
chỉ chứa các kí tự 'R'
, 'G'
và 'B'
lần lượt đại diện cho thứ tự và màu sắc của những viên đá. ('R'
là màu đỏ, 'G'
là màu xanh lá , còn 'B'
là màu xanh lam)
Hãy tính xem số viên đá cần lấy ra ít nhất để không có 2
viên cùng màu cạnh nhau.
Lưu ý: 2
viên đá được xem là cạnh nhau nếu giữa chúng không có viên đá nào khác.
Ví dụ:
- Với
s="RRB"
thìstoneOnLine(s) = 1
.
Ta chỉ cần lấy ra viên đá màu đỏ.
- Với
s="
BRBG"
thìstoneOnLine(s)=0.
Ta không cần phải lấy ra viên đá nào cả.
Đầu vào/Đầu ra:
-
[Thời gian chạy] 0.5s với C++, 3s với Java và C#, 4s với Python, Go và JavaScript
-
[Đầu vào] string s
1 ≤ s.size() ≤ 10000 - [Đầu ra] Integer
Số viên đá ít nhất phải lấy ra.
Post Comment