From 42c0d1b5a73503da31b47951d2ab4810420d4796 Mon Sep 17 00:00:00 2001 From: crupest Date: Sat, 18 Jul 2020 18:42:30 +0800 Subject: import(solutions): Add problem 917 . --- works/solutions/cpp/917.cpp | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 works/solutions/cpp/917.cpp (limited to 'works/solutions/cpp') diff --git a/works/solutions/cpp/917.cpp b/works/solutions/cpp/917.cpp new file mode 100644 index 0000000..d01d795 --- /dev/null +++ b/works/solutions/cpp/917.cpp @@ -0,0 +1,45 @@ +#include +#include +#include + +using std::string; + +class Solution +{ +public: + string reverseOnlyLetters(string s) + { + if (s.empty()) + return s; + + auto front = s.rend(); + auto back = s.end(); + + bool move_front = true; + while (true) + { + if (move_front) + { + if (std::isalpha(*--front)) + { + move_front = false; + } + } + else + { + if (std::isalpha(*--back)) + { + std::swap(*front, *back); + move_front = true; + } + } + + if (front.base() == back) + { + break; + } + } + + return s; + } +}; -- cgit v1.2.3