LeetCode中等题之重排数字的最小值

news/2024/11/20 17:31:08/

题目

给你一个整数 num 。重排 num 中的各位数字,使其值 最小化 且不含 任何 前导零。
返回不含前导零且值最小的重排数字。
注意,重排各位数字后,num 的符号不会改变。
示例 1:
输入:num = 310
输出:103
解释:310 中各位数字的可行排列有:013、031、103、130、301、310 。
不含任何前导零且值最小的重排数字是 103 。
示例 2:
输入:num = -7605
输出:-7650
解释:-7605 中各位数字的部分可行排列为:-7650、-6705、-5076、-0567。
不含任何前导零且值最小的重排数字是 -7650 。
提示:
-10^15 <= num <= 10 ^15
来源:力扣(LeetCode)

解题思路

  将数字按照不同的情况,拆分然后排序,接着进行重组。需要注意的地方就是最高位的数字不能是0,需要找到接下来不是0的数字进行替换。

class Solution:def smallestNumber(self, num: int) -> int:if num<0:num=-numtemp=[]while num>0:temp.append(num%10)num//=10temp.sort(reverse=True)q=len(temp)-1if temp[0]==0:for i in range(1,q+1):if temp[i]!=0:temp[0]=temp[i]temp[i]=0breaks=0for i in temp:s+=i*10**qq-=1return -selif num==0:return 0else:temp=[]while num>0:temp.append(num%10)num//=10temp.sort()q=len(temp)-1if temp[0]==0:for i in range(1,q+1):if temp[i]!=0:temp[0]=temp[i]temp[i]=0breaks=0for i in temp:s+=i*10**qq-=1return s

在这里插入图片描述


http://www.ppmy.cn/news/605641.html

相关文章

ES6常用语法总结

目录一. let和const命令简单示例与var的区别1. var的变量穿透问题2. 常量修改问题二. 模板字符串三. 函数默认参数四. 箭头函数五. 对象初始化简写六. 对象解构七. 传播操作符…八. 数组map和reduce方法使用map()方法reduce()方法一. let和const命令 es6开始&#xff0c;变量和…

Python怎么利用多核cpu

<!--一个博主专栏付费入口结束--><link rel"stylesheet" href"https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-4a3473df85.css"><div id"content_views" class"markdown_views prism-atom-one-dark&qu…

LeetCode中等题之删除链表的中间节点

题目 给你一个链表的头节点 head 。删除 链表的 中间节点 &#xff0c;并返回修改后的链表的头节点 head 。 长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点&#xff08;下标从 0 开始&#xff09;&#xff0c;其中 ⌊x⌋ 表示小于或等于 x 的最大整数。 对于 n 1、2…

使用Pycharm给Python程序传递参数

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a;https://blog.csdn.net/counte_rking/article/details/78837028 </div><!--一个博主专栏付费入口--><!--一…

LeetCode简单题之合并两个链表

题目 给你两个链表 list1 和 list2 &#xff0c;它们包含的元素分别为 n 个和 m 个。 请你将 list1 中下标从 a 到 b 的全部节点都删除&#xff0c;并将list2 接在被删除节点的位置。 下图中蓝色边和节点展示了操作后的结果&#xff1a; 请你返回结果链表的头指针。 示例 1&…

npm 快速入门

目录一. 简介二. 作用1. 快速构建nodejs工程2. 快速安装和依赖第三方模块三. npm镜像加速四. 其他命令一. 简介 官方网站&#xff1a;https://www.npmjs.com/ NPM全称Node Package Manager&#xff0c;是Node.js包管理工具&#xff0c;是全球最大的模块生态系统&#xff0c;里…

数据结构之哈夫曼树和哈夫曼编码

切入正题之前&#xff0c;我们先了解几个概念&#xff1a; 路径&#xff1a;从树的一个结点到另一个结点分支所构成的路线路径长度&#xff1a;路径上的分支数目树的路径长度&#xff1a;从根结点出发到每个结点的路径长度之和带权路径长度&#xff1a;该结点到根结点的路径长…

获取准确路径目录

20211207 https://www.runoob.com/w3cnote/python-check-whether-a-file-exists.html import os.path os.path.isfile(fname)https://blog.csdn.net/qq_21240643/article/details/99412409 # 删除文件 os.remove(D:\\ss\\s\\1.txt) # 删除文件判断路径是否存在并删除 202012…