Problem Statement
There's a group of people sitting in a row of seats. Each seat can hold only one person. Your goal is to arrange the people so they're all sitting together and there are no empty seats between people. You are given a
The distance that one person needs to travel to relocate from the ith seat to the jth seat is the absolute value of (i - j) units. Return the minimum possible total distance in units that the people must travel in order to achieve your goal.
Definition
- Class:
- ChangingSeats
- Method:
- getDistance
- Parameters:
- String
- Returns:
- int
- Method signature:
- int getDistance(String s)
- (be sure your method is public)
Constraints
- s will contain between 1 and 50 characters, inclusive.
- s will contain the characters '.' and uppercase 'X' only.
Examples
"X.X"
Returns: 1
"X.X.XXX"
Returns: 3
Let's number the people from 1 to 5 (left to right). To make them all sit together, we can move person 2 one seat to the right and person 1 two seats to the right. The resulting configuration is "..XXXXX". Another way to achieve this is to move person 1 three seats to the right. Either way, the total distance is 3 units.
"....X.X.X.X.XXXXX"
Returns: 10
".XXXXX..........X.X.XX......X.XX...."
Returns: 81
"...................."
Returns: 0
"....X...X..X..X....X...X........X"
Returns: 39
"X.......X.XXX........XX..X.......X.XX.X....X.."
Returns: 106
".......X..X..X..X.X...X..XX..XXX.."
Returns: 47
"...X....X.X.XXX.XXX......X"
Returns: 19
"XX"
Returns: 0
"..X..X...XXX..........X.X....X..X"
Returns: 61
"...X....X...XX.XXX.X..X"
Returns: 18
"X."
Returns: 0
".X..........X.XX.X.X...."
Returns: 15
".XX..X.XX.XX....X.....X...X."
Returns: 37
"XXXXX..XX..X.XX.X..XXX.X.X......XXX...X"
Returns: 98
"X.....XXXX.XXXXXX...X.X.X..X.....XX..X.XXXX.XXX"
Returns: 165
"...XXX.XXX.X.X.XX....X.XX.X.X.X..X."
Returns: 69
"X.XX..XXXXXX...XXX.XX.....XX....XXXXXXXX"
Returns: 128
"..XXX..X..XX.XXX..X..XX...XXX.XXX..X....X..XXXXX"
Returns: 152
"X....X....X..X.XX.X.X.XXXX.XXX.XXX.X..X.X"
Returns: 66
"..XXXXXX.XXX...XXX..XX.XXX.X..."
Returns: 50
".X....XX.X..X..X.X.XXXX...XXXX.X"
Returns: 54
"XX.X..X..XX.XX.XXXXX.....X.....X.X.X...X.XX...XX"
Returns: 153
"..X.XXXX.XXX...X.XXXXXXXXXX.X.X."
Returns: 42
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
Returns: 0
".................................................."
Returns: 0
"...X.............................................."
Returns: 0
"X"
Returns: 0
"."
Returns: 0
"XXXXXXXXXXXXX.........................XXXXXXXXXXXX"
Returns: 300
"XXXXXXXXXXXXX..............X..........XXXXXXXXXXXX"
Returns: 302
"XXXXXXXXXXXXXXXX.................XXXXXXXXXXXXXXXXX"
Returns: 272
"XXXXXXXXXXXXXXXX..................XXXXXXXXXXXXXXXX"
Returns: 288
"X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X."
Returns: 156
".X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X.X"
Returns: 156
"XXXX..........................................XXXX"
Returns: 168