)
链接https://leetcode.cn/problems/remove-k-digits/submissions/727646268/题解class Solution { public: string removeKdigits(string num, int k) { if (num.size() 0) { return num; } string sta; // 保持一个单调递增的 // 如果不满足在k0的情况下弹出 for (auto ch : num) { while (!sta.empty() sta.back() ch k 0) { sta.pop_back(); --k; } sta.push_back(ch); } // k 0的情况下弹出 while (k 0) { sta.pop_back(); --k; } int i 0; // 排出开始为0的字母 for (; i sta.size(); i) { if (sta[i] ! 0) { break; } } // 如果已经到末尾了直接返回0 if (i sta.size()) { return 0; } // 返回后面的字符串 return sta.substr(i); } };