Problem Statement
You are looking for a place to park your car on a suburban street. You can park at any position that meets the following requirements:
1. It is not directly in front of a private driveway. 2. It is not directly in front of a bus stop. 3. It is not 5 meters before a bus stop. 4. It is not 10 meters before a bus stop. 5. It is not directly in front of a side-street. 6. It is not 5 meters before a side-street. 7. It is not 5 meters after a side-street.
The street will be represented as a
Given the street return the total number of possible parking spaces on that street.
Definition
- Class:
- StreetParking
- Method:
- freeParks
- Parameters:
- String
- Returns:
- int
- Method signature:
- int freeParks(String street)
- (be sure your method is public)
Constraints
- street will have between 1 and 50 characters inclusive.
- street will only contain characters 'D', 'B', 'S' and '-'.
Examples
"---B--S-D--S--"
Returns: 4
The street looks like this: ---B--S-D--S-- ^ ^ ^ ^ | | | | The arrows indicate where you are allowed to park on this street. Thus the method should return 4.
"DDBDDBDDBDD"
Returns: 0
This street is full of private driveways and bus stops. You cannot park anywhere on this street. The method should return 0.
"--S--S--S--S--"
Returns: 2
You can only park at the first and last positions on this street. The method should return 2.
"SSD-B---BD-DDSB-----S-S--------S-B----BSB-S--B-S-D"
Returns: 14
"-SB---S----DD-D-DS---B--BD-S-SD---D----D-B---B-SDD"
Returns: 15
"------BB-----D--------S--D-BSSS-----B---S-S-SSS---"
Returns: 23
"------BB-----D--------S--D-BSSS-----B---S-S-SSS---"
Returns: 23
"----------S--S----D---------SD---DD--D---DSB-B----"
Returns: 32
"-S---------DDDB---BB----SSD---D-B---S-B-----DD---S"
Returns: 24
"-D--B---BD-D--------S---DS-SS-S-B-SBB---B--D--BS--"
Returns: 16
"------DD--S--D--S-S-DSS---B--D--S---B----S----DD-"
Returns: 19
"-D--B---DS-----B-----S-B--------------B-B-S----DB-"
Returns: 25
"---D--D---SDB-S-B--SSD-S---D-------SB------D------"
Returns: 28
"----B---D-S------S-S------DD---SS-B----DD-D-------"
Returns: 28
"DDDDDDDDDDDDDDDDDD"
Returns: 0
"D"
Returns: 0
"B"
Returns: 0
"S"
Returns: 0
"-"
Returns: 1
"--------------------"
Returns: 20
"SSSSSSSSSSSSSSSSSSSSSSS"
Returns: 0
"BBBBBBBBBBBBBBBBBB"
Returns: 0
"-DD-BDDD---B-DSBD---S-B--S--DDS-D-DBSBBDDD-S------"
Returns: 12
"---D-DDS---SDS---------B-B-D-D-B-DB--S--BD-SDDSB-D"
Returns: 15
"D--------DBBSBDSBB-------------DBS-DB-S-B--B----S-"
Returns: 22
"-D--BB-SD-D-B-DDD--B--DBB-S-BB-D-SDBD-------S--B-B"
Returns: 11
"SD-D-DS-DDD---------BS-SS-D-DD----S--DB---DDBDD---"
Returns: 19
"B--D-B--D---S-BDDD-D-----D---D---SB--D-B---DBB----"
Returns: 25
"--S-DDDSDSB--B-DSS----DD----BBBSD---BSD-B-BB-B-SB-"
Returns: 9
"B-S-D---D-S----DSDBDBD-BDBDD---D-S---DS-DSSS-BDS-"
Returns: 11
"BDS-D-B-DSB-DSB-BSBD--DS--SB-S-D-SB--BS--B-DB-BD-B"
Returns: 4
"-SDBS-DBB----SBSSDD--BB---B-DB-DS-DS--DD---DB--D-D"
Returns: 11
"B--"
Returns: 2
"--B"
Returns: 0
"S--"
Returns: 1
"--S"
Returns: 1
"D--"
Returns: 2
"--D"
Returns: 2
"-S-"
Returns: 0
"--------------------------------------------------"
Returns: 50
"-BBBBBBBBB"
Returns: 0
"-BDDDDDD"
Returns: 0
"SSD-B---BD----DD--D--SSDB-"
Returns: 9
"--B--B--B--B--B"
Returns: 0
"-B"
Returns: 0
"-"
Returns: 1
"S-B"
Returns: 0