测试用例

示例 2 :

输入: num = “10200”, k = 1
输出: “200”
解释: 移掉首位的 1 剩下的数字为 200. 注意输出不能有任何前导零。
示例 3 :

输入: num = “10”, k = 2
输出: “0”
解释: 从原数字移除所有的数字,剩余为空就是0。

Me

如果下一个元素比当前栈元素小,移除当前元素,把下一个元素入栈
10200
k =2
栈:1
k=1
0200
0<1
k = 0
栈:0
k==0
栈:0200
处理最开头的0,返回结果

10
k = 2
栈:1
k = 1
栈:0
k=0
接下来就要和上面的例子一样处理0
如果字符串是空就返回指定值

func removeKdigits(num string, k int) string {digits := len(num) - kstack := make([]byte, len(num))top := 0 for i := range num {for top > 0 && stack[top-1] > num[i] && k > 0 {top--k--}stack[top] = num[i]top++}i := 0for i < digits && stack[i] == '0' {i++}if i == digits {return "0"}return string(stack[i:digits])
}

402. 移掉K位数字 golang相关推荐

  1. LeetCode 402. 移掉K位数字 中等难度

    402. 移掉K位数字 题目: 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导 ...

  2. Java实现 LeetCode 402 移掉K位数字

    402. 移掉K位数字 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示 ...

  3. 402. 移掉K位数字(单调栈)

    给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : 输入: nu ...

  4. LeetCode 402. 移掉K位数字(贪心,单调栈)

    1. 题目 给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : ...

  5. C++算法学习(力扣:402. 移掉K位数字)

    给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : 输入: nu ...

  6. leetcode 402. 移掉K位数字(贪心算法)

    给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : 输入: nu ...

  7. 402.移掉K位数字,使得剩下数字最小

    思路 这道题让我们从一个字符串数字中删除 k 个数字,使得剩下的数最小.也就说,我们要保持原来的数字的相对位置不变. 以题目中的 num = 1432219, k = 3 为例,我们需要返回一个长度为 ...

  8. leetcode 402. Remove K Digits | 402. 移掉 K 位数字(单调栈)

    题目 https://leetcode.com/problems/remove-k-digits/ 题解 本题考察对问题的抽象能力,多写几个例子可以发现,这是一个单调栈问题,维护一个单调不减栈. cl ...

  9. LeetCode 402:移掉K位数字--JAVA

    给定一个以字符串表示的非负整数 num,移除这个数中的 k 位数字,使得剩下的数字最小. 注意: num 的长度小于 10002 且 ≥ k. num 不会包含任何前导零. 示例 1 : 输入: nu ...

最新文章

  1. UNIX中的Select函数
  2. 理解 java 中常用数据结构
  3. java jpa性能_[Java Performance] 数据库性能最佳实践 - JPA和读写优化
  4. api与implementation的区别
  5. php的符号的排序大小
  6. java xml特殊字符转义_Java中将xml文件转化为json遇到特殊字符会报错!
  7. NSNtification 在多线程中的运用
  8. Thrift协议的服务模型
  9. MQ学习(一)----JMS规范(转发整合)
  10. 南阳理工acm,水仙花数
  11. 管道读写报错121:信号灯超时时间已到
  12. 桌面便签软件下载,电脑桌面便签软件下载哪一个
  13. Mac Dotnet 坑 - Donet EF
  14. java伪随机数概率_抽奖伪随机数生成器(Java)
  15. C#调用百度大脑API初探2
  16. SAS(五)建立SAS数据集的方法及导出数据
  17. kernel exploit 有用的结构体
  18. JS字符串和数字相加结果是什么?
  19. TI毫米波雷达 MIMO (2TX4RX)设置
  20. 项目目标文档(河创平台项目)

热门文章

  1. iframe 高度根据子页面来确定
  2. matplotlib散点图笔记
  3. c语言 static的用法
  4. python--装饰器、生成器、迭代器、元类
  5. C++服务器设计(七):聊天系统服务端实现
  6. Swift中的延迟加载(懒加载)
  7. TCP多进程并发服务端 Linux socket编程入门(2)
  8. POJ3185(简单BFS,主要做测试使用)
  9. 一个很不错的wp企业站模板
  10. 柜员计算机技能,新入职柜员必备软件:柜员技能训练系统最新版