Loading Now

stoneOnLine

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''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

Contact