diff options
Diffstat (limited to 'challenge-282/deadmarshal/cpp')
| -rw-r--r-- | challenge-282/deadmarshal/cpp/ch-1.cpp | 28 | ||||
| -rw-r--r-- | challenge-282/deadmarshal/cpp/ch-2.cpp | 20 |
2 files changed, 48 insertions, 0 deletions
diff --git a/challenge-282/deadmarshal/cpp/ch-1.cpp b/challenge-282/deadmarshal/cpp/ch-1.cpp new file mode 100644 index 0000000000..70b7c1737f --- /dev/null +++ b/challenge-282/deadmarshal/cpp/ch-1.cpp @@ -0,0 +1,28 @@ +#include<iostream> +#include<string> + +template<typename T> +std::string good_integer(T n) +{ + std::string str = std::to_string(n); + char prev = '\0'; + std::size_t seen{}; + for(std::size_t i = 0; i < str.size(); ++i){ + if(prev == str[i]) seen++; + else if(seen == 3) return std::string(3,prev); + else { + prev = str[i]; + seen = 1; + } + } + return "-1"; +} + +int main() +{ + std::cout << good_integer<int>(12344456) << '\n' + << good_integer<int>(1233334) << '\n' + << good_integer<int>(10020003) << '\n'; + return 0; +} + diff --git a/challenge-282/deadmarshal/cpp/ch-2.cpp b/challenge-282/deadmarshal/cpp/ch-2.cpp new file mode 100644 index 0000000000..286b8d2dfc --- /dev/null +++ b/challenge-282/deadmarshal/cpp/ch-2.cpp @@ -0,0 +1,20 @@ +#include<iostream> +#include<string> +#include<cctype> + +std::size_t changing_keys(const std::string &str) +{ + std::size_t count{}; + for(std::size_t i = 1; i < str.size(); ++i) + if(tolower(str[i]) != tolower(str[i-1])) count++; + return count; +} + +int main() +{ + std::cout << changing_keys("pPeERrLl") << '\n' + << changing_keys("rRr") << '\n' + << changing_keys("GoO") << '\n'; + return 0; +} + |
