当前位置: 首页 > article >正文

Java中等题-移掉k位数字(力扣)

给你一个以字符串表示的非负整数 num 和一个整数 k ,移除这个数中的 k 位数字,使得剩下的数字最小。请你以字符串形式返回这个最小的数字。

 

示例 1 :

输入:num = "1432219", k = 3
输出:"1219"
解释:移除掉三个数字 4, 3, 和 2 形成一个新的最小的数字 1219 。

示例 2 :

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

示例 3 :

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

这道题我的思路跟官方思路差不多,都是用一个东西装入字符,如果后面的字符小于前面已经装入的字符,那就替换掉。但是我没有想到用队列来装字符,所以超时

而且需要判断结果字符串的第一个是否为0

正确的代码如下:

class Solution {
    public String removeKdigits(String num, int k) {
        char[] chars = num.toCharArray();
        int n=chars.length;
        Deque<Character>deque=new ArrayDeque<>();
        for(int i=0;i<n;i++){
            char ch=chars[i];
            while(deque.size()!=0&&k>0&&deque.peekLast()>ch){
                deque.pollLast();
                k--;
            }
            deque.offerLast(ch);
        }
        while(k>0){
            deque.pollLast();
            k--;
        }
        StringBuilder sb=new StringBuilder();
        boolean zero=true;
        while(deque.size()>0){
            char di=deque.pollFirst();
            if(zero&&di=='0'){
                continue;
            }
            zero=false;
            sb.append(di);


        }
        return sb.length()==0?"0":sb.toString();

    }
}


http://www.kler.cn/news/304484.html

相关文章:

  • Go websocket
  • Python基础学习(1)
  • overleaf如何下载论文的pdf
  • 使用PyTorch进行图像风格迁移:基于VGG19实现
  • Git工作流程
  • Nacos 与 Eureka 的区别
  • vue3 使用 codemirror 实现yaml文件的在线编辑
  • 点餐|基于java的电子点餐系统小程序(源码+数据库+文档)
  • 【Excel 表打印基本操作】
  • 【图像识别】摄像头捕捉运动到静止视频帧(免费源码分享)
  • Maven从入门到精通(三)
  • IVF 视频文件格式
  • [网络][CISCO]CISCO_华为网络设备端口镜像配置
  • Cache Aside pattern
  • EG边缘计算网关连接纵横云3.0物联网平台(MQTT协议)
  • Notepad++插件:TextFX 去除重复行
  • 快速理解Redis
  • 【系统规划与管理师】【案例分析】【考点】【问题篇】第5章 IT服务部署实施
  • MiniCPM-V: A GPT-4V Level MLLM on Your Phone
  • Ansys HFSS的边界条件与激励端口
  • 【Linux入门】iptables的安装与配置应用实例
  • pg \d 在不同模式下有同名表时注意事项
  • 828华为云征文|华为云Flexus X实例docker部署Jitsi构建属于自己的音视频会议系统
  • 软件工程毕业设计开题汇总
  • 如何在 DigitalOcean Droplet 云服务器上部署 Next.js 应用
  • 技术周刊 | Vue3.5、Replit Agent、Cursor 使用技巧、React 19 中的新功能、8 月 Web 平台的新功能
  • 9.11 QT ( Day 4)
  • oracle数据库安装和配置详细讲解
  • 个人学习笔记6-2:动手学深度学习pytorch版-李沐
  • Qt使用UDP进行单波通信