Problem Statement
You are a diamond hunter looking for diamonds in a peculiar mine. This mine is a String of '<' and '>' characters, and each diamond is a substring of the form "<>". Each time you find a diamond, you remove it and the residual mine is updated by removing the 2 characters from the String.
For example, if you have a mine like "><<><>>><", you can start by removing the first appearance of "<>" to get "><<>>><", then remove the only remaining diamond to get "><>><". Note that this produces a new diamond which you can remove to get ">><". Since there are no diamonds left, your expedition is done.
Given a String mine, return the number of diamonds that can be found. Note that the order in which you remove simultaneous appearances of diamonds is irrelevant; any order will lead to the same result.
Definition
- Class:
- DiamondHunt
- Method:
- countDiamonds
- Parameters:
- String
- Returns:
- int
- Method signature:
- int countDiamonds(String mine)
- (be sure your method is public)
Constraints
- mine will contain between 1 and 50 characters, inclusive.
- Each character of mine will be either '<' or '>'.
Examples
"><<><>>><"
Returns: 3
The example from the problem statement.">>>><<"
Returns: 0
No diamonds here."<<<<<<<<<>>>>>>>>>"
Returns: 9
"><<><><<>>>><<>><<><<>><<<>>>>>><<<"
Returns: 14