diff --git a/2202/220218.cpp b/2202/220218.cpp new file mode 100644 index 0000000..3afd804 --- /dev/null +++ b/2202/220218.cpp @@ -0,0 +1,25 @@ +#include +#include +#include + +class Solution { +public: + static std::string removeKdigits(const std::string& num, int k) { + std::vector stack; + stack.reserve(num.length() - k); + for (char ch : num) { + while (k && !stack.empty() && stack.back() > ch) { + stack.pop_back(); + --k; + } + stack.push_back(ch); + } + std::string ret(stack.begin(), k > 0 ? std::prev(stack.end(), k) : stack.end()); + return ret.empty() || ret.find_first_not_of('0') == -1 ? "0" : ret.substr(ret.find_first_not_of('0')); + } +}; + +int main() { + std::cout << Solution::removeKdigits("1432219", 3); + return 0; +} diff --git a/2202/CMakeLists.txt b/2202/CMakeLists.txt index 4bda13e..979b24e 100644 --- a/2202/CMakeLists.txt +++ b/2202/CMakeLists.txt @@ -3,4 +3,4 @@ PROJECT(2202) SET(CMAKE_CXX_STANDARD 23) -ADD_EXECUTABLE(2202 220218-CN.cpp) +ADD_EXECUTABLE(2202 220218.cpp)