# 总体分为2种场景:1、全部涂染为一种颜色(红或绿);2、保留2种颜色,R在前,G在右。2种场景的结果取最小值 # 保留2种颜色时,第一个必须是R,最后一个必须是G,中间的直接递归 s=input() def func(s): # 空字符串,或者字符串中只包含一种字符,则无需涂染 if len(set(s))==1 or not s: return 0 else: ans=0 if s[0]!='R': ans+=1 if s[-1]!='G': ans+=1 # 可全部涂染成一种颜色,或保留2中颜色,且R在前,G在右 return min(s.count('R'),s.count('G'),ans+func(s[1:-1])) print(func(s))