Problem Statement
Given a sequence S and an art shift P, we can obtain new sequences, where each next sequence is obtained from the previous one by applying the art shift P. All these sequences are said to be reachable from S using P.
For simplicity, a sequence of N colors can be represented as a
Given an initial sequence, return the maximum number of different sequences that are reachable from it by using a single art shift.
Definition
- Class:
- ArtShift
- Method:
- maxShifts
- Parameters:
- String
- Returns:
- int
- Method signature:
- int maxShifts(String sequence)
- (be sure your method is public)
Constraints
- sequence will contain betweeen 1 and 30 characters, inclusive.
- Each character in sequence will be 'B' or 'W'.
Examples
"BW"
Returns: 2
We can use an art shift of {1,0} to reach "WB" and then "BW" again for a total of two different reachable sequences.
"BBBWBBB"
Returns: 7
"BWBWB"
Returns: 6
A possible art shift that allows us to reach 6 different sequences is: {1,2,0,4,3}.
"WWWWWWWWW"
Returns: 1
It does not matter what art shift we use; the sequence will always stay the same.
"BBBWBBBBBWWW"
Returns: 60
"BBBBBWBBBBBBWBBBBBBBWBBBBBBBBB"
Returns: 990
"BWBWBWBWBWBWBWBWBWBWBWBWBWBWBW"
Returns: 4620
"W"
Returns: 1
"BBBBBBBBBBB"
Returns: 1
"WWWWWWWWWBBWB"
Returns: 60
"B"
Returns: 1
"BB"
Returns: 1
"BW"
Returns: 2
"BBB"
Returns: 1
"WWB"
Returns: 3
"BBBB"
Returns: 1
"BWWW"
Returns: 4
"WWBB"
Returns: 4
"WWWWW"
Returns: 1
"WWBWW"
Returns: 5
"WBBWW"
Returns: 6
"BBBBBB"
Returns: 1
"BBBBBW"
Returns: 6
"WBWBBB"
Returns: 6
"BBWWWB"
Returns: 6
"WWWWWWW"
Returns: 1
"WWWWBWW"
Returns: 7
"WWWWBBW"
Returns: 12
"BWBBWWW"
Returns: 12
"WWWWWWWW"
Returns: 1
"WBWWWWWW"
Returns: 8
"BBBBBWBW"
Returns: 15
"BWBWBBWB"
Returns: 15
"BBBBWWWW"
Returns: 15
"WWWWWWWWW"
Returns: 1
"WWWWWWBWW"
Returns: 9
"WWBBBBBBB"
Returns: 20
"BBBWBWBWB"
Returns: 20
"WBWWBWBBW"
Returns: 20
"WWWWWWWWWW"
Returns: 1
"BBBBBBWBBB"
Returns: 10
"WWWWBWWWBW"
Returns: 21
"BBWWBBBBWB"
Returns: 30
"WBWBWBBWBB"
Returns: 30
"WWBBWWBWBB"
Returns: 30
"WWWWWWWWWWW"
Returns: 1
"BBBBBWBBBBB"
Returns: 11
"BBBBBBBWBBW"
Returns: 30
"BBBWBBBWBWB"
Returns: 30
"BWWWBBWBWWW"
Returns: 30
"BWBBWBWBWWB"
Returns: 30
"WWWWWWWWWWWW"
Returns: 1
"BBBBWBBBBBBB"
Returns: 12
"WBBBBBBBWBBB"
Returns: 35
"BWBWWWWWWBWW"
Returns: 60
"WBBBWBBBBBWW"
Returns: 60
"BBWBWBBWBWWB"
Returns: 60
"BBBWBWWWWBBW"
Returns: 60
"WWWWWWWWWWWWW"
Returns: 1
"WWWWWWBWWWWWW"
Returns: 13
"WWWWWWBWBWWWW"
Returns: 42
"WBBBBBBBBWWBB"
Returns: 60
"WBBBBWBWWBBBB"
Returns: 60
"WBBBWBBWBWBWB"
Returns: 60
"BBBWWBBWWBWWB"
Returns: 60
"BBBBBBBBBBBBBB"
Returns: 1
"BBBBBBBBBWBBBB"
Returns: 14
"WWWWWWWWBWBWWW"
Returns: 45
"WWWBWWBWWWBWWW"
Returns: 84
"WBWWBWBWWWBWWW"
Returns: 84
"WWBWBBBWBWBBBB"
Returns: 84
"BWWBWWWBWBWWBB"
Returns: 84
"WWWBBBWBWBWBWB"
Returns: 84
"BBBBBBBBBBBBBBB"
Returns: 1
"WBWWWWWWWWWWWWW"
Returns: 15
"WWWWWWWWWWWWBWB"
Returns: 56
"BBBBBBBBWWBBBWB"
Returns: 105
"WBBWWWWWWWBWWBW"
Returns: 105
"BBBWWBWBBBBBWWB"
Returns: 105
"WBBWWBBBWBBBBWW"
Returns: 105
"BBWBWWWBBWWBBBW"
Returns: 105
"BBBBBBBBBBBBBBBBBBBBBBBBB"
Returns: 1
"WWWWWWBWWWWWWWWWWWWWWWWWW"
Returns: 25
"BBBBBBBBBBBBBBBBBBWBBBWBB"
Returns: 156
"WWWBWWWWWWWWWWWWWWWWWWBBW"
Returns: 504
"BBWWWBBBBBBWBBBBBBBBBBBBB"
Returns: 1260
"BBBBBBBBBBBBWWBWWWBBBBBBB"
Returns: 1260
"BWWWBBBBBBBBBBWWBBBBWBBBB"
Returns: 1260
"BWBWBWBBBWBBBWBWBBWBBBBBB"
Returns: 1260
"WBWWBWWWWWWWWWBBWWWBWBBWB"
Returns: 1260
"WBBWBWWBBBWWWWBBBBBBBWBBB"
Returns: 1260
"BWBBBBWBBWBWBBBWWBBWWWBBW"
Returns: 1260
"WBWBBWBBBWBWWWWWBBWBBWWWW"
Returns: 1260
"WBBWWWWWBBWWBBWWBBBBWBBWB"
Returns: 1260
"WWWWWWWWWWWWWWWWWWWWWWWWWW"
Returns: 1
"WBBBBBBBBBBBBBBBBBBBBBBBBB"
Returns: 26
"BBBBBBBBWBBBBBBBBBBBBBBBWB"
Returns: 165
"WWWWWWWWWWWBWWWWWWBWWWWWBW"
Returns: 630
"BBWBBBWBBBBBBBBBWBBBBBBBBW"
Returns: 1260
"BWBBBBWBBBWBBBWBBBWBBBBBBB"
Returns: 1260
"WWWBWBWWBBWWWWWWWBWWBWWWWW"
Returns: 1260
"WBBBWWWWWBWWBWWWWWBWWWWWBW"
Returns: 1260
"WWWWWBWWWWWBWWWBWWBWWBBWBB"
Returns: 1260
"WBBWWBWWWWWBWWWWWBBWWBWBBW"
Returns: 1260
"WBBBWBWWBBWWBWBWWBWWWWWWWB"
Returns: 1260
"BBWWWBBBWBWBWWBWWWWBBWBWWW"
Returns: 1260
"BWWBWBWBBWBBWWBBWWBWBWBBWB"
Returns: 1260
"WWBBWWWWBWBWBBBBWWBBBWWBWB"
Returns: 1260
"BBBBBBBBBBBBBBBBBBBBBBBBBBB"
Returns: 1
"BBBBBBBBBBBBBWBBBBBBBBBBBBB"
Returns: 27
"BBBBBWBBBBBBBBWBBBBBBBBBBBB"
Returns: 182
"WBBBWBBBBBBBBBBBBWBBBBBBBBB"
Returns: 693
"BWBBBBBBBBBWBBBWBBBBWBBBBBB"
Returns: 1540
"WWWWWBWBWWBWWWWWWWWWWWBWWBW"
Returns: 1540
"WWBBWWWWWBWWWWWWWWWBWWWWBWB"
Returns: 1540
"BBWBBBBWBBBWBWBBBBBBBBBWWBW"
Returns: 1540
"WBBWBWBBBBBWWBBBWBBWBBWBBBB"
Returns: 1540
"WBWWWWWBWWBWWBBBBWBWWWWWWWB"
Returns: 1540
"BBBWWBBWBBBWBBWWWBWBWBBBBWB"
Returns: 1540
"BBWBWWWWWWBWWBWBWWWWBWWBBBB"
Returns: 1540
"WWWBWWWBBBBWWWBWWBWBBBBWWBW"
Returns: 1540
"WWBBBBWWBBWWBWBBWBWBBWWWWBW"
Returns: 1540
"WWWWWWWWWWWWWWWWWWWWWWWWWWWW"
Returns: 1
"WWWWWWWWWWWWWWWWWWWWWWBWWWWW"
Returns: 28
"BBBBBBBBBBBWBBBBBBBBBBBBBBBW"
Returns: 195
"WWWWWBWWWWWWWWBWWWWWWWWBWWWW"
Returns: 792
"WWWWBWBWWBBWWWWWWWWWWWWWWWWW"
Returns: 1540
"BWBBWBBBBBBBBBBBBBBBWBBWBBBW"
Returns: 2310
"WWWWWWWWBWWWWWBBBWWWBWWWBWWW"
Returns: 2310
"WBWBWBBWWWBBBBBBBBBBBBWBBBBB"
Returns: 2310
"WWWWWBWWWWWWWWWBWBWWBWWBBWBB"
Returns: 2310
"WBWBBWBBWWWBWWWWWWWBWWWBWWBW"
Returns: 2310
"WWBWWBWWWWWWWWWWBWWBBWBWBBBB"
Returns: 2310
"BWBBBWWWWWBBBBWBBBBBWWBBBWBW"
Returns: 2310
"WWBWBWBWBBBWWWWWWWWWBBBWBWBB"
Returns: 2310
"WBWBWWWBBBBWBBBBWBWWWWWBWWWB"
Returns: 2310
"BBBBWWBBWWWWWWWWBBBBBBWBWBWW"
Returns: 2310
"WWWWWWWWWWWWWWWWWWWWWWWWWWWWW"
Returns: 1
"WWWWWWWWWWWWWWWWWWWWWWWWWWBWW"
Returns: 29
"WWWWWWWWWBWWWWWWWWWWWWWWWWWBW"
Returns: 210
"WWWBWWWWWWWWWWWWWWWBWWWWWWWBW"
Returns: 819
"WWWWWWWWWBWBBWWWWWWWWWWBWWWWW"
Returns: 2520
"WWWWWWBWWWWBWWWBWBWWWWWWWWWWB"
Returns: 2520
"WBWWWWWWWBWBWBWWBWWWWBWWWWWWW"
Returns: 2520
"WBBBBBBBBBBBWBBBBWBWBWBWBBWBB"
Returns: 2520
"BBBBBBBBWWWBBBBBBBBBWWBWBBBWW"
Returns: 2520
"BWWWBWWWWWBBWWBBWBWWBWWWWWWWB"
Returns: 2520
"BBBWBBBBBBWBBWBBBWBBWBWWWWBBW"
Returns: 2520
"BBWBBWBWBBWBWBBWBBWWBBWWBBBBW"
Returns: 2520
"WBWBBBBWWBBBBBBWWBWWWWBBBWBWB"
Returns: 2520
"WBWBBBBBBWWBBWBBWBWWWBBWBBWWW"
Returns: 2520
"BBBWWWWBWBBWWWBWWBBBWBBWBWBWB"
Returns: 2520
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
Returns: 1
"WWWWWWWWWWWWWWWWWWWWWWBWWWWWWW"
Returns: 30
"BBBBBBBBBBWBBBBBBBBBBBBBWBBBBB"
Returns: 221
"BBBBBWBWBBWBBBBBBBBBBBBBBBBBBB"
Returns: 990
"BBBBBBWBBBBBBBBWWBBBBBBBBWBBBB"
Returns: 2520
"WBBBBWBBBBBBWWBBBBBBBBBWBBBBBB"
Returns: 4620
"BBBBBWBBWBBBBBBWBBBWWBBBBBBBWB"
Returns: 4620
"BWBWWBWWWBWBWWWBWWWWWWWWBWWWWW"
Returns: 4620
"BBWBBBBBBBBBWBBBWBBBBBWWBWBBWW"
Returns: 4620
"BWBBBBBBWBBWBBBBWBBWBBBWBWBWBW"
Returns: 4620
"WBWWWWWBBWWWWBBBWWWWBBWWWBBWWW"
Returns: 4620
"BBBBBWBWBBWBBBBWBBWWWWBWBBBWBW"
Returns: 4620
"BBBBBWWBWBWBWWWWBWWBBWWWWWBWWW"
Returns: 4620
"BWBWBBBBWWWBWBBWWWWWBWWWWBWWBB"
Returns: 4620
"WWBBBWBBWWWBBBWBWWWBWBBWWBWWBW"
Returns: 4620
"BBBBBBBBWWBWBWBWWWBWBWWWBWBWWW"
Returns: 4620
"BBBBBBBBBBBBBBBBB"
Returns: 1
"BBBBBBBBBBBWBBBBB"
Returns: 17
"BWBBBBBBWBBBBBBBB"
Returns: 72
"BWWWWWWWBWWBWWWWW"
Returns: 140
"WWWBWWWWWBWWWBWWB"
Returns: 210
"WWWWBWWWWWBBBWWWB"
Returns: 210
"WBWBBBWBBBWBBWBBW"
Returns: 210
"WBBBBBWWBBBWBWWWB"
Returns: 210
"BWBBWBWBWWWWBWBWB"
Returns: 210
"BBBBBBBBBBBBBBBWWWWWWWWWW"
Returns: 1260
"WWWWWWWWWWWWBBBBBBBBBBBBBBBBB"
Returns: 2520
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBWW"
Returns: 221
"WWWWWB"
Returns: 6
"WWWWWWWWWWWWWWWWWWWWWWWWWWBBBB"
Returns: 2520
"WWWWWWWWWWWWWWWBBBBBBBBBBBBBBB"
Returns: 4620
"WWWWWWWWWWWWWWWWWWWWWWWWWWBWWW"
Returns: 30
"WBWBWBWBWBWBWBWBWBWBWBWBWBWBBB"
Returns: 4620
"BBBBBBBBBBBBBBBBBBBBBBBBBBBBW"
Returns: 29
"BBWWWWWWWWWWW"
Returns: 42
"WWBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
Returns: 221
"WWWWWBBBBB"
Returns: 30
"BBBBBBBBBBBBBBBWWWWWWWWWWWWWWW"
Returns: 4620
"BBBBBBBBBBBBBBBBBBBBBBBBBBBWW"
Returns: 210
"WWBBBBBBBBBBBBBBBB"
Returns: 77
"BBWW"
Returns: 4
"WBWBBBBBBBWBWWWBBBWBBBWBWBW"
Returns: 1540
"BBBBBBBBBBBBWWWWWWWWWWWWWWWWW"
Returns: 2520
"BBBBBWWWWW"
Returns: 30
"BBBBBBBBBBBWWWWWWWWWWWWW"
Returns: 840
"WBWBWBWBWBWBWBWBWBWBWBWBWBWBWB"
Returns: 4620
"WWWWWWWWWWWWWWWWWWWWWWWWWWWBB"
Returns: 210
"BWBWBWBWBWBWBWBWBWBWBWBWBWBWBB"
Returns: 4620
"BBBBBWBBBBBW"
Returns: 35
"WWBBBBBBBBBBB"
Returns: 42
"BWBW"
Returns: 4
"WBWB"
Returns: 4
"WWWWWWWWWWWWWWWWBBBBBBBBBBBBB"
Returns: 2520
"WWWBBBBBBBBBBBBBBBBBBBBBBBBBBB"
Returns: 990
"WWWWWWWBBBBW"
Returns: 60
"BBWWWWWWWWWWWWWWWWWWWWWWWWWWW"
Returns: 210
"BBBBBBBBBBBBBBBBBBBBBBBBBBWWWW"
Returns: 2520
"WWBBBBBBBBB"
Returns: 30
"WWWWWWBBBB"
Returns: 30
"BBBBBBBBBBBBBBBBBWWWWWWWWWWWW"
Returns: 2520
"BBBBBBBBBBBBBBBWWWWWWWWWWWWWW"
Returns: 2520
"WWWWWWWWWWWWWBBBBBBBBBBBBBBBB"
Returns: 2520