From 29b273fc146113e127bd1664dd8d198d4ad2dcbd Mon Sep 17 00:00:00 2001 From: deadmarshal Date: Fri, 2 Sep 2022 11:13:08 +0430 Subject: challenge180 --- challenge-180/deadmarshal/cpp/ch-1.cpp | 37 ++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 challenge-180/deadmarshal/cpp/ch-1.cpp (limited to 'challenge-180/deadmarshal/cpp/ch-1.cpp') diff --git a/challenge-180/deadmarshal/cpp/ch-1.cpp b/challenge-180/deadmarshal/cpp/ch-1.cpp new file mode 100644 index 0000000000..389fdd96e6 --- /dev/null +++ b/challenge-180/deadmarshal/cpp/ch-1.cpp @@ -0,0 +1,37 @@ +#include +#include +#include +#include + +char *first_unique_character(const std::string& str) +{ + char *buffer = new char[39]; + std::vector chars{str.begin(), str.end()}; + std::unordered_map hash{}; + for(const char& c : str) hash[c]++; + for(std::size_t i = 0; i < chars.size(); ++i) + if(hash[chars[i]] == 1) + { + std::snprintf(buffer, + 39, + "%zu as '%c' is the first unique character", + i, + chars[i]); + break; + } + return buffer; +} + +int main(int argc, char *argv[]) +{ + if(argc < 2) + { + fprintf(stderr, "No arg(s) provided!"); + exit(1); + } + char *buffer = first_unique_character(argv[1]); + printf("%s\n", buffer); + delete buffer; + + return 0; +} -- cgit