diff --git a/Highest and lowest/README.md b/Highest and lowest/README.md new file mode 100644 index 0000000..597b90c --- /dev/null +++ b/Highest and lowest/README.md @@ -0,0 +1,15 @@ +# Highest and Lowest + +In this little assignment you are given a string of space separated numbers, and have to return the highest and lowest number. +## Examples + + highAndLow("1 2 3 4 5"); // return "5 1" + highAndLow("1 2 -3 4 5"); // return "5 -3" + highAndLow("1 9 3 4 -5"); // return "9 -5" + +## Notes + + All numbers are valid Int32, no need to validate them. + There will always be at least one number in the input string. + Output string must be two numbers separated by a single space, and highest number is first. + diff --git a/Highest and lowest/main.cpp b/Highest and lowest/main.cpp new file mode 100644 index 0000000..e415d1d --- /dev/null +++ b/Highest and lowest/main.cpp @@ -0,0 +1,15 @@ +#include +#include +#include +#include + +std::string highAndLow(const std::string& numbers){ + std::vector nums; + std::istringstream iss(numbers); + int num; + while(iss >> num) { + nums.push_back(num); + } + auto min_max = std::minmax_element(nums.begin(), nums.end()); + return std::is_string(*min_max.second()) + " " + std::string(*min_max.first();) +}