删除数字-LintCode
来源:互联网 发布:湖南卫视杜海涛知乎 编辑:程序博客网 时间:2024/06/07 21:45
给出一个字符串 A, 表示一个 n 位正整数, 删除其中 k 位数字, 使得剩余的数字仍然按照原来的顺序排列产生一个新的正整数。
找到删除 k 个数字之后的最小正整数。
N <= 240, k <= N
样例:
给出一个字符串代表的正整数 A 和一个整数 k, 其中 A = 178542, k = 4
返回一个字符串 “12”
#ifndef C182_H#define C182_H#include<iostream>#include<string>using namespace std;class Solution {public: /** *@param A: A positive integer which has N digits, A is a string. *@param k: Remove k digits. *@return: A string */ string DeleteDigits(string A, int k) { // wirte your code here int len = A.size(); if (len <= k) return NULL; string s; int pos = -1; int m = len - k; while (m != 0) { pos = findMin(A, pos+1, len - m); s += A[pos]; --m; } int size = s.size(); int j = 0; for (int i = 0; i < size; ++i) { if (s[i] != '0') { j = i; break; } } return s.substr(j); } int findMin(string s, int i, int j) { int pos=i; for (int k = i; k <= j; ++k) { if (s[pos] - s[k] > 0) pos = k; } return pos; }};#endif
阅读全文
0 0
- lintcode-删除数字-182
- lintcode 删除数字
- LintCode 182-删除数字
- LintCode :删除数字
- lintcode(182)删除数字
- LintCode 删除数字+贪心
- lintcode-- 删除数字
- 删除数字-LintCode
- LintCode-删除排序数组中的重复数字
- LintCode 删除排序数组中的重复数字
- lintcode ----删除排序数组中的重复数字
- LintCode:删除排序数组中的重复数字
- lintcode删除排序链表重复数字
- LintCode-删除排序数组中的重复数字
- 【LintCode】删除排序数组中的重复数字
- 删除排序数组中的重复数字-LintCode
- lintcode--删除排序数组中的重复数字
- Lintcode 删除排序数组中的重复数字
- angular-route基本使用Demo
- UVA 572 油田(BFS)
- Maven+Spring+Spring MVC+MyBatis+MySQL,搭建SSM框架环境
- CURL模拟post,get提交数据-实际应用
- 上传图片显示,ajaxUpload
- 删除数字-LintCode
- PHPStorm 配置自定义的Apache与PHP解释器
- Python中有关文件的操作
- String数字操作
- 子类实例化
- JQuery选择器小知识积累
- java XML的SAX解析方式
- Linux环境下配置简单DNS服务
- SpringMVC笔记(四)拦截器