面试中算法(删去n个数字后的最小值)

 有一个整数,从该整数中去掉n个数字,要求剩下的数字形成的新整数尽可能小。

分析:使用栈的特性,在遍历原整数的数字时,让所有数字一个一个入栈,当某个数字需要被删除时,(即栈顶数字>当前数字时,栈顶数字出栈(相当于删除))让该数字出栈。最后,程序把栈中的元素转化为字符串类型的结果。

如果整数num=541270936,n=3。如图所示:

 

# 以遍历数字作为外循环,以n作为内循环
def remove_n_digits2(num,n):#新整数长度=原整数长度-nnlen=len(num)-n#创建一个栈stack=[]for i in range(len(num)):#当前数字curr=num[i]#当栈顶数字>当前数字时,栈顶数字出栈(相当于删除)while len(stack)>0 and stack[len(stack)-1]>curr and n>0:stack.pop()n-=1# 如果遇到数字0,栈为空,0不入栈if '0'==curr and len(stack)==0:nlen-=1if nlen<=0:return '0'continue#遍历当前数字入栈stack.append(curr)#找到栈中第一个非零数字的位置if nlen<=0:return '0'return ''.join(stack)if __name__ == '__main__':print(remove_n_digits2('18939477', 2))  # 139477print(remove_n_digits2('39', 2))  # 0print(remove_n_digits2('60800', 1))  # 800print(remove_n_digits2('701312', 3))  # 11print(remove_n_digits2('541270936', 3))  # 120936

时间复杂度是O(n)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/7930.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【记录】Python3| 将 PDF 转换成 HTML/XML(✅⭐PyMuPDF+tqdm)

本文将会被汇总至 【记录】Python3&#xff5c;2024年 PDF 转 XML 或 HTML 的第三方库的使用方式、测评过程以及对比结果&#xff08;汇总&#xff09;&#xff0c;更多其他工具请访问该文章查看。 文章目录 PyMuPDF 使用体验与评估1 安装指南2 测试代码3 测试结果3.1 转 HTML …

【Python进阶】 类的系统知识总结 | 特殊变量方法 单双下划线、继承、多态、装饰器

之前在C中学过一些类与对象的知识&#xff0c;Python也同样是面向对象的&#xff0c;因而也有类与对象 浅浅总结一下 总结Python中关于类的知识 文章目录 1 类的基本定义和访问2 特殊变量&#xff08;属性/方法&#xff09;2.1 双下划线开头结尾——特殊方法2.1.1 初始化方法…

Git与GitHub交互

注册 https://github.com/ 本地库与远程库交互方式 创建本地库并提交文件 创建远程库 在本地库创建远程库地址别名 查看现有远程库地址的别名 git remote -v 创建远程库地址别名 git remote add [别名] [远程地址] 远程路地址位置 示例 成员1推送 git push [别名] [分支…

web server apache tomcat11-34-Ahead of Time compilation support

前言 整理这个官方翻译的系列&#xff0c;原因是网上大部分的 tomcat 版本比较旧&#xff0c;此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎&#xff0c;轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…

文心一言 VS 讯飞星火 VS chatgpt (254)-- 算法导论18.2 7题

七、假设磁盘硬件允许我们任意选择磁盘页面的大小&#xff0c;但读取磁盘页面的时间是 abt 其中 a 和 b 为规定的常数&#xff0c;t 为确定磁盘页大小后的 B 树的最小度数。请描述如何选择 t 以(近似地)最小化 B 树的查找时间。对 a5ms 和 b10ms &#xff0c;请给出 t 的一个最…

超越视觉极限:深度学习图像超分辨率算法清单【第四部分】

超越视觉极限&#xff1a;深度学习图像超分辨率算法清单【第四部分】 简介2019年 - SAN (Second-Order Attention Network)2019年 - IMDN (Information Multi-Distillation Network)2020年 - SwinIR (Swin Transformer for Image Restoration)2021年 - Real-ESRGAN (Real-World…

使用图网络和视频嵌入预测物理场

文章目录 一、说明二、为什么要预测&#xff1f;三、流体动力学模拟的可视化四、DeepMind神经网络建模五、图形编码六、图形处理器七、图形解码器八、具有不同弹簧常数的轨迹可视化九、预测的物理编码和推出轨迹 一、说明 这是一篇国外流体力学专家在可视化流体物理属性的设计…

大数据技术概述_2.大数据面临的5个方面的挑战

1. 大数据面临着5个主要问题 2012年冬季&#xff0c;来自IBM、微软、谷歌、HP、MIT、斯坦福、加州大学伯克利分校、UIUC等产业界和学术界的数据库领域专家通过在线的方式共同发布了一个关于大数据的白皮书。该白皮书首先指出大数据面临着5个主要问题&#xff0c;分别是异构性&a…

环境搭建 docker-compose

systemctl restart network docker-compose 单独执行一个文件 docker-compose -f version: 3services:nacos-standalone:image: nacos/nacos-server:v2.3.1 container_name: nacos-standaloneenvironment:- PREFER_HOST_MODEhostname- MODEstandalone- NACOS_AUTH_IDENTITY_…

阿里云CentOS 7.9 64位 Liunx 安装redis

具体的步骤如下&#xff1a; 添加 EPEL 仓库&#xff0c;因为 Redis 在标准的 CentOS 仓库中不可用&#xff1a; sudo yum install epel-release安装 Redis&#xff1a; sudo yum install redis启动 Redis 服务&#xff1a; sudo systemctl start redis如果你想让 Redis 在…

使用Vue3开发项目,搭建Vue cli3项目步骤

1.打开cmd &#xff0c;输入 vue create neoai遇到这样的问题 则需要升级一下电脑上 Vue Cli版本哈 升级完成之后 再次输入命令&#xff0c;创建vue3项目 vue create neoai安装完成后&#xff0c;输入 npm run serve 就可以运行项目啦~ 页面运行效果

【LLM 论文】OpenAI 基于对比学习微调 LLM 得到嵌入模型

论文&#xff1a;Text and Code Embeddings by Contrastive Pre-Training ⭐⭐⭐⭐ OpenAI 一、论文速读 这篇论文基于大型生成式 LLM 通过对比学习来微调得到一个高质量的 text 和 code 的 embedding 模型。 训练数据的格式&#xff1a;是一堆 ( x i , y i ) (x_i, y_i) (x…

上传文件至linux服务器失败

目录 前言异常排查使用df -h命令查看磁盘使用情况使用du -h --max-depth1命令查找占用空间最大的文件夹 原因解决补充&#xff1a;删除文件后&#xff0c;磁盘空间无法得到释放 前言 使用XFTP工具上传文件至CentOS服务器失败 异常 排查 使用df -h命令查看磁盘使用情况 发现磁盘…

C语言:初学者和专家的分水岭

C语言&#xff1a;初学者和专家的分水岭 C语言作为一门古老而强大的编程语言&#xff0c;被认为是菜鸟和大神之间的分水岭。在编程领域&#xff0c;C语言不仅是初学者学习的重要起点&#xff0c;也是专家深入研究和高级编程的基础。本文将通过具体实例来说明C语言在不同级别开发…

【leetcode】链表排序题目总结

21. 合并两个有序链表 递归法 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : va…

怎么ai解答问题?这三个方法都可以

怎么ai解答问题&#xff1f;在数字化飞速发展的今天&#xff0c;人工智能&#xff08;AI&#xff09;技术已经渗透到我们生活的方方面面&#xff0c;尤其是在解答问题方面&#xff0c;AI展现出了令人瞩目的能力。那么&#xff0c;哪些软件可以利用AI技术解答问题呢&#xff1f;…

使用curl命令查看服务器端口开放情况

目录 1.ssh端口 22 2.mysql数据库端口 3306 3.web应用端口 &#xff08;Jellyfin 8082&#xff09; &#xff08;wordpress 8088&#xff09; &#xff08;tomcat 8080&#xff09; 4.不存在的端口 5.被防火墙阻挡的端口 1.ssh端口 22 curl -v 10.10.10.205:22 curl…

leetcode_47.全排列 II

47. 全排列 II 题目描述&#xff1a;给定一个可包含重复数字的序列 nums &#xff0c;按任意顺序 返回所有不重复的全排列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,2] 输出&#xff1a; [[1,1,2],[1,2,1],[2,1,1]]示例 2&#xff1a; 输入&#xff1a;nums [1,2,3] …

了解你的构建:发布经理构建难点应对指南

在如今的计算机行业&#xff0c;发布经理的工作任重而道远。一方面他们必须紧跟日益攀升的行业标准&#xff0c;发布速度的极限不断突破&#xff0c;现在要求的速度在过去是远远无法想象的。另一方面&#xff0c;质量的门槛也在不断抬高。 我并非诟病软件更新换代过于迅速频繁…

揭秘数据可视化:五款利器助力决策

在当今这个数据驱动的时代&#xff0c;数据可视化已成为企业决策、数据分析不可或缺的一部分。通过直观、生动的图形、图像&#xff0c;数据可视化能够更快速、更准确地传达信息&#xff0c;帮助企业洞察数据背后的价值。本文将为您介绍几款优秀的数据可视化工具。 一、山海鲸…