leetcode-402. Remove K Digits
来源:互联网 发布:金字塔原理 知乎 编辑:程序博客网 时间:2024/06/02 03:48
考察点:栈,贪心;
思路:贪心的思路就是从左往右遍历,第一个遇到的char要放入栈中,后面的char如果小于栈顶元素,应该出栈,更换栈顶元素。
C++ 代码:
class Solution {public: string removeKdigits(string num, int k) { if (k == num.size() || num.size() == 0) return "0"; int digits = num.size() - k; //vector<char> sta(num.size(), '0'); stack<char> sta; int sum=0; int top = 0; for (int i=0; i<num.size(); i++) { char temp = num[i]; while (sta.size() > 0 && sta.top() > temp && k>0) { sta.pop(); k--; } sta.push(temp); } stack<char> sta_2 ; while (sta.size()) { sta_2.push(sta.top()); sta.pop(); } while (sta_2.size() && sta_2.top() == '0') { sta_2.pop(); } string result; if (sta_2.size() == 0) { return "0"; } else { int index=0; while (sta_2.size() && index < digits) { result += sta_2.top(); sta_2.pop(); index++; } } return result; }};
阅读全文
0 0
- 【Leetcode】402. Remove K Digits
- leetcode 402. Remove K Digits
- LeetCode 402. Remove K Digits
- [LeetCode]402. Remove K Digits
- leetcode 402. Remove K Digits
- LeetCode 402. Remove K Digits
- [leetcode]402. Remove K Digits
- LeetCode 402. Remove K Digits
- LeetCode 402. Remove K Digits
- [LeetCode] 402. Remove K Digits
- [LeetCode]402. Remove K Digits
- LeetCode 402. Remove K Digits
- leetcode-402. Remove K Digits
- leetcode 402. Remove K Digits
- Leetcode: 402. Remove K Digits
- LeetCode: Remove K Digits
- [LeetCode]Remove K Digits
- leetcode:Remove K Digits
- 10.7 NOIP模拟 第二题“任”
- Java程序员从笨鸟到菜鸟之(二)数组
- 响应四种方式
- LintCode 字符串查找(暴力法+KMP)
- 百度2017春招笔试真题[编程题] 度度熊回家
- leetcode-402. Remove K Digits
- 网络复习-运输层
- 面向对象:多态 Polymorphism、重载、重写、继承
- Codeforces Round #439 (Div. 2) E. The Untended Antiquity(二维BIT)
- 洛谷 P1845 影像之结构化特征_NOI导刊2011提高(12)
- STL常用算法(转)
- LYK快跑!(run)
- 浅谈getElementsByClassName
- 页面传参