算法训练:Remove K Digits
来源:互联网 发布:抗日网络剧牺牲 编辑:程序博客网 时间:2024/05/19 06:38
题目链接:https://leetcode.com/problems/remove-k-digits/#/description
题目描述:
给定一个包含非负整数的字符串,移除其中的k个数,使得剩下的数字是最小的。
解题思路:
如果n是num的长度,我们要去除k个,那么需要剩下n-k个数,定义一个result数组用于保存剩下的字符,与result中最后一个字符相比,比它小,
栈中最后一个字符出栈,该字符进栈,否则该字符直接进栈。值得注意的是在删除k个数之后,若剩下的数前面有0,应该去掉。
string removeKdigits(string num, int k) { string result = ""; int n = num.size(), remainNum = n - k; for (char c : num) { while (k && result.size() && result.back() > c) { result.pop_back(); --k; } result.push_back(c); } result.resize(remainNum);//重置大小 while (!result.empty() && result.front()== '0'){ result.erase(result.begin());//去掉得到结果最前面的字符0 } return result.empty() ? "0" : result; }
运行结果:
Your Input
"1432215629" 3
Your answer
"1215629"
Expected answer
"1215629"
阅读全文
0 0
- 算法训练:Remove K Digits
- 算法:402. Remove K Digits
- 402. Remove K Digits
- 402. Remove K Digits
- 402.Remove K Digits
- 402. Remove K Digits
- Leetode402. Remove K Digits
- Remove K Digits
- [LeetCode402]Remove K Digits
- 402. Remove K Digits
- LeetCode: Remove K Digits
- [Medium]Remove K Digits
- 402. Remove K Digits
- 402. Remove K Digits
- 402. Remove K Digits
- Remove K Digits
- Remove K Digits
- [LeetCode]Remove K Digits
- 通过MySQL自动同步刷新Redis
- centos yum安装php高版本
- 基础
- java项目单独使用mybatis的小例子
- Struts2从一个action转到另一个action的两种方法
- 算法训练:Remove K Digits
- 单链表求第几大元素
- 手机移动端百度开发覆盖物点击事件不起作用
- elasticsearch 初学入门
- E
- Xcode方便开发的插件推荐
- XlistView上下加载的使用方法
- 一个人成为废柴的九大根源
- codis3.1安装搭建(zookeeper集群)