Lintcode182 Delete Digits solution 题解

【题目描述】

Given string A representative a positive integer which hasNdigits, remove anykdigits of the number, the remaining digits are arranged according to the original order to become a new positive integer.

给出一个字符串A, 表示一个n位正整数, 删除其中k位数字, 使得剩余的数字仍然按照原来的顺序排列产生一个新的正整数。

找到删除k个数字之后的最小正整数。

N<= 240,k<=N

【题目链接】

www.lintcode.com/en/problem/delete-digits/

【题目解析】

此题可使用stack,找第一个递减的值。从这个数的左边开始,找第一个递减的位置所在。

要让一个数尽量小,那么就要把小的数字尽量放到前面,如果前面有比它大的数字,那么就到把在它前面且比它大的数字都要删除掉,直到已经删掉k个数字,所以最后留下的是一个递增数列。同时要考虑一些特殊情况,比如前置0要去掉,以及如果遍历一遍之后发现删去的数不足k个,则删去最后的k-count个数。

【参考答案】

www.jiuzhang.com/solutions/delete-digits/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,351评论 0 33
  • 这是所有类型里我觉得最有趣的一个类型,哈哈。来被虐一下。 258. Add Digits 数字根的性质: 任何数字...
    __小赤佬__阅读 3,101评论 0 0
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 10,536评论 0 41
  • "你就装!" "蒜都买不起,怎么装" -_-# "........................"
    不爱应酬的大小姐阅读 3,173评论 0 0
  • 费老师今日话题: 每人都会犯错,对于生活,犯错也许是最好的成长路径。 聊聊你印象深刻的犯错,从中你得到了什么成长。...
    海豚258阅读 1,534评论 0 0