From e81c48f739f5a2f790e446f7991f176fe0f54d48 Mon Sep 17 00:00:00 2001 From: Lam Haoyin Date: Thu, 7 Apr 2022 01:50:47 +0800 Subject: [PATCH] add: 220407-CN [cpp] --- cpp/2204/220407-CN.cpp | 22 ++++++++++++++++++++++ cpp/2204/CMakeLists.txt | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 cpp/2204/220407-CN.cpp diff --git a/cpp/2204/220407-CN.cpp b/cpp/2204/220407-CN.cpp new file mode 100644 index 0000000..0b35581 --- /dev/null +++ b/cpp/2204/220407-CN.cpp @@ -0,0 +1,22 @@ +#include + +class Solution { +public: + static bool rotateString(const std::string& s, const std::string& goal) { + char ch = s[0]; + std::size_t n = s.length(); + + auto verify = [&](std::size_t p) { + for (std::size_t i = 0; i < n; ++i, p = (1 + p) % n) + if (s[i] != goal[p]) + return false; + return true; + }; + + std::size_t pos = 0; + for (std::size_t nextPos = goal.find(ch, pos); nextPos != std::string::npos; nextPos = goal.find(ch, pos = nextPos + 1)) + if (verify(nextPos)) + return true; + return false; + } +}; diff --git a/cpp/2204/CMakeLists.txt b/cpp/2204/CMakeLists.txt index 8642583..866b911 100644 --- a/cpp/2204/CMakeLists.txt +++ b/cpp/2204/CMakeLists.txt @@ -3,4 +3,4 @@ PROJECT(2204) SET(CMAKE_CXX_STANDARD 23) -ADD_EXECUTABLE(2204 220406-CN.cpp) +ADD_EXECUTABLE(2204 220407-CN.cpp)