aboutsummaryrefslogtreecommitdiff
path: root/challenge-194/deadmarshal/cpp/ch-1.cpp
blob: c8e953dcbc64d58c4ffd65f46f46b93bdf98107e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include<iostream>
#include<string>
#include<regex>

unsigned short digital_clock(const std::string &str)
{
  std::regex re{"(.)(.):(.)(.)"};
  std::smatch m;
  if (std::regex_match(str, m, re))
  {
    return m[1] == '?' ? (std::stoi(m.str(2)) < 4 ? 2 : 1)
      : m[2] == '?' ? (std::stoi(m.str(1)) < 2 ? 9 : 3)
      : m[3] == '?' ? 5 : 9;
  }
  return 0;
}

int main()
{
  std::cout << digital_clock("?5:00") << '\n';
  std::cout << digital_clock("?3:00") << '\n';
  std::cout << digital_clock("1?:00") << '\n';
  std::cout << digital_clock("2?:00") << '\n';
  std::cout << digital_clock("12:?5") << '\n';
  std::cout << digital_clock("12:5?") << '\n'; 
  return 0;
}