Jumping Tokens

2.6

9 votes
Medium, ad hoc, approved
Problem

You are given a row of n tokens in a row colored red and blue.

In one move, you can choose to perform a capture. A capture chooses a token, and makes a jump over exactly one other token, and removes a token of the opposite color.

More specifically, given three adjacent tokens we can convert it into the following state with two adjacent tokens:

  • RxBxR
  • BxRxB
  • RxBBx
  • BxRRx
where x is a token of an arbitrary color.

Given the initial row of tokens, return the minimum possible length of the resulting row after a series of captures.

Input Format:

The first line will contain the number of test cases T.
Each test case can be described with one line.
This line will contain a string consisting of only characters 'R' and 'B' denoting the colors in the row.

Output Format:

Output T numbers, the answers to each problem.

Constraints

There is no partial credit for this problem.

There is only one file for this problem. The file has the following constraints.
T=1000
1n50

Sample Input
6
RB
RBB
BBRRB
RRR
BBBRRRB
RBRRRBR
Sample Output
2
2
2
3
2
2
Time Limit: 5
Memory Limit: 256
Source Limit:
Explanation

In the first sample, there are no possible captures we can perform.

In the second sample, we can perform a capture with the red token to get the state BR.

In the third sample, we can apply the following captures BBˆRRBˆBBRRBBˆRRB. The hat denotes which token is doing the capture in the next step.

For the fourth sample, we can't do any captures.

Editor Image

?