LeetCode简单题之按奇偶性交换后的最大数字

news/2024/11/24 8:26:03/

题目

给你一个正整数 num 。你可以交换 num 中 奇偶性 相同的任意两位数字(即,都是奇数或者偶数)。
返回交换 任意 次之后 num 的 最大 可能值。
示例 1:
输入:num = 1234
输出:3412
解释:交换数字 3 和数字 1 ,结果得到 3214 。
交换数字 2 和数字 4 ,结果得到 3412 。
注意,可能存在其他交换序列,但是可以证明 3412 是最大可能值。
注意,不能交换数字 4 和数字 1 ,因为它们奇偶性不同。
示例 2:
输入:num = 65875
输出:87655
解释:交换数字 8 和数字 6 ,结果得到 85675 。
交换数字 5 和数字 7 ,结果得到 87655 。
注意,可能存在其他交换序列,但是可以证明 87655 是最大可能值。
提示:
1 <= num <= 10^9
来源:力扣(LeetCode)

解题思路

  分别把偶数和奇数取出来,然后排个序再放回去即可。

class Solution:def largestInteger(self, num: int) -> int:odd,O,even,E=[],[],[],[]ODD=set('13579')s=str(num)for i in range(len(s)):if s[i] in ODD:odd.append(i)O.append(s[i])else:even.append(i)E.append(s[i])temp=[None]*len(s)O.sort(reverse=True)E.sort(reverse=True)if O:Ot=iter(O)for i in odd:temp[i]=next(Ot)if E:Et=iter(E)for i in even:temp[i]=next(Et)return int(''.join(temp))

在这里插入图片描述


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

相关文章

带你彻彻底底搞懂朴素贝叶斯公式

https://zhuanlan.zhihu.com/p/54287889 本文参考了该博客的实例&#xff0c;但该博客中的朴素贝叶斯公式计算错误&#xff0c;评论中的也不对&#xff0c;所以&#xff0c;重新写一篇。一. 朴素贝叶斯朴素贝叶斯中的朴素一词的来源就是假设各特征之间相互独立。这一假设使得朴…

微型导轨的使用寿命能达到多久?

微型导轨&#xff0c;顾名思义就是体积很小的导轨&#xff0c;一般是应用在小型化设备中的&#xff0c;像半导体设备&#xff0c;医疗设备&#xff0c;IC制造设备&#xff0c;X-Y table&#xff0c;精密测量及检测仪器&#xff0c;高速皮带驱动设备&#xff0c;高速移载设备等都…

LeetCode简单题之二进制间距

题目 给定一个正整数 n&#xff0c;找到并返回 n 的二进制表示中两个 相邻 1 之间的 最长距离 。如果不存在两个相邻的 1&#xff0c;返回 0 。 如果只有 0 将两个 1 分隔开&#xff08;可能不存在 0 &#xff09;&#xff0c;则认为这两个 1 彼此 相邻 。两个 1 之间的距离是…

SVD(奇异值分解)小结

特征值分解和奇异值分解的区别 所有的矩阵都可以进行奇异值分解&#xff0c;而只有方阵才可以进行特征值分解。当所给的矩阵是对称的方阵&#xff0c;A(T)A&#xff0c;二者的结果是相同的。也就是说对称矩阵的特征值分解是所有奇异值分解的一个特例。但是二者还是存在一些小的…

LeetCode中等题之随机数索引

题目 给定一个可能含有重复元素的整数数组&#xff0c;要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。 注意&#xff1a; 数组大小可能非常大。 使用太多额外空间的解决方案将不会通过测试。 示例: int[] nums new int[] {1,2,3,3,3}; Solution sol…

什么是梯度下降法?

20220114 yθx θ取一个初始值 x,y是样本对 θ θ -梯度 θ不断改变知道左右两边相差小于误差 梯度下降从来都是拟合负梯度&#xff0c;GBDT平方损失只是恰好等于残差 https://mp.weixin.qq.com/s/F4YHEpfa280cpR4tgL0Maw AI面试题之GBDT梯度提升树 张戎​数学 话题的优秀回…

LeetCode中等题之自定义字符串排序

题目 给定两个字符串 order 和 s 。order 的所有单词都是 唯一 的&#xff0c;并且以前按照一些自定义的顺序排序。 对 s 的字符进行置换&#xff0c;使其与排序的 order 相匹配。更具体地说&#xff0c;如果在 order 中的字符 x 出现字符 y 之前&#xff0c;那么在排列后的字…

解释为什么用梯度下降而不是直接求导数为0的解

问题&#xff1a; 在计算线性回归最大似然估计的解的时候&#xff0c;最后的推导结果是 为什么不直接求出θ&#xff1f;而是一步步迭代求出θ&#xff1f; 原因 因此&#xff0c;梯度下降可以节省大量的计算时间。此外&#xff0c;它的完成方式允许一个简单的并行化&#xf…