Connection Status:
Competition Arena > DiamondHunt
SRM 346 · 2007-04-24 · by soul-net · Simulation, String Manipulation
Class Name: DiamondHunt
Return Type: int
Method Name: countDiamonds
Arg Types: (string)
Problem Statement

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.

Constraints

  • mine will contain between 1 and 50 characters, inclusive.
  • Each character of mine will be either '<' or '>'.
Examples
0)
"><<><>>><"
Returns: 3

The example from the problem statement.

1)
">>>><<"
Returns: 0

No diamonds here.

2)
"<<<<<<<<<>>>>>>>>>"
Returns: 9
3)
"><<><><<>>>><<>><<><<>><<<>>>>>><<<"
Returns: 14
4)
"<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>"
Returns: 25

Submissions are judged against all 74 archived test cases, of which 5 are shown here. Case numbers match the judge’s.

Coding Area

Language: C++17 · define a public class DiamondHunt with a public method int countDiamonds(string mine) · 74 test cases · 2 s / 256 MB per case

Submitting as anonymous