#arc063a. [arc063_a]1D Reversi

[arc063_a]1D Reversi

题目描述

两只狐狸 Jiro 和 Saburo 正在玩一款叫做 1D Reversi 的游戏。这款游戏在一个棋盘上进行,使用黑白棋子。棋盘上的棋子排成一行,每个玩家将一个新的棋子放在行的两端。和原始的 Reversi 游戏类似,当放置一个白色棋子时,位于两个白色棋子之间的所有黑色棋子会变成白色棋子,反之亦然。

在游戏进行到一半时,Saburo 突然有事情要离开游戏。此时,棋盘的状态由一个字符串 SS 描述。在棋盘上有 |S|(即 SS 的长度)个棋子,SS 中的每个字符代表从左边数起的第 ii 个棋子的颜色(1iS1≦i≦|S|)。如果 SS 中的第 ii 个字符是 B,表示对应棋盘上的棋子颜色是黑色。同样,如果 SS 中的第 ii 个字符是 W,表示对应棋子的颜色是白色。

Jiro 希望棋盘上所有的棋子都是同一种颜色的。为了实现这个目的,他将按照规则在棋盘上放置新的棋子。请找出他需要放置的最少棋子数。

约束条件

  • 1S1051 ≦ |S| ≦ 10^5
  • SS 中的每个字符都是 BW

输入

输入从标准输入读入,输入格式如下:

SS

输出

输出 Jiro 为了达到目标需要放置的最少棋子数。


示例输入1

BBBWW

示例输出1

1

通过在棋子行的右端放置一个新的黑棋,所有白棋将变成黑棋。同样地,通过在棋子行的左端放置一个新的白棋,所有黑棋将变成白棋。

无论哪种方式,Jiro 的目标都可以通过放置一颗棋子来实现。


示例输入2

WWWWWW

示例输出2

0

如果所有棋子已经是相同的颜色,不需要放置新的棋子。


示例输入3

WBWBWBWBWB

示例输出3

9