From e35db9dbd7076795db94cf9d150dc14f879d9fa5 Mon Sep 17 00:00:00 2001 From: mustafaaydn Date: Mon, 8 Jan 2024 01:23:47 +0300 Subject: add solutions --- challenge-250/witawayar/cpp/ch-2.cpp | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 challenge-250/witawayar/cpp/ch-2.cpp (limited to 'challenge-250/witawayar/cpp/ch-2.cpp') diff --git a/challenge-250/witawayar/cpp/ch-2.cpp b/challenge-250/witawayar/cpp/ch-2.cpp new file mode 100644 index 0000000000..290e1efc60 --- /dev/null +++ b/challenge-250/witawayar/cpp/ch-2.cpp @@ -0,0 +1,37 @@ +// g++ -Wall -Wextra -Wpedantic -std=c++17 cpp/ch-2.cpp +#include +#include +#include + +int fun(std::vector alpha_num_strs) { + int max = -1; + for (const std::string& str : alpha_num_strs) { + int current = + str.find_first_not_of("0123456789") == std::string::npos + ? std::stoi(str) + : str.size(); + if (current > max) { + max = current; + } + } + return max; +} + +int main(void) { + std::vector, int>> tests = { + {{"perl", "2", "000", "python", "r4ku"}, 6}, + {{"001", "1", "000", "0001"}, 1}, + {{"-12", "2"}, 3} + }; + + for (const auto& [input, expected_output] : tests) { + int got = fun(input); + if (got != expected_output) { + std::stringstream error_msg; + error_msg << "Expected " << expected_output << ", got " << got; + throw std::runtime_error(error_msg.str()); + } + } + + std::cout << "done-testing, success\n"; +} -- cgit