首页 > 试题广场 >

最大数字交换

[编程题]最大数字交换
  • 热度指数:1135 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
给定一个字符串num,字符串由0~9的正整数组成,你至多可以交换一次字符串中的任意两位字符,使得交换后的num代表的正整数尽可能大。
1.给定的num不会含有前导0,是一个合法的正整数类型的字符串
2.可以不交换,但是最多只能交换一次
数据范围:
示例1

输入

"4556"

输出

"6554"

说明

交换6和4,可以获得最大的正整数6554 
示例2

输入

"5"

输出

"5"
示例3

输入

"8873"

输出

"8873"

说明

不需要交换 
头像 Xijian1999
发表于 2022-02-26 15:05:42
直接对着题目翻译 public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num string字符串 * @return string字符串 */ 展开全文
头像 fred-coder
发表于 2022-03-03 10:42:30
倒叙排序,交换不在当前位置的值,如果有多个值交换最右侧的因为求的是最大数 # # 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 # # # @param num string字符串 # @return string字符串 # class Solution: d 展开全文
头像 lan爱学习
发表于 2022-03-02 22:23:03
基本思想:越大的数,应当排放在越前面。 当不满足该条件时,与本应放在该位的数值中的最后一个进行交换 public: /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num string字 展开全文
头像 姐姐的遮阳伞
发表于 2022-04-05 15:28:12
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num string字符串 * @ 展开全文
头像 牛客327297870号
发表于 2023-01-24 13:33:51
这题看着简单,其实还挺不容易的,牛客的用例不全,有些错的代码也让通过。。。 class Solution: def maximumSwap(self, num: str) -> str: num = list(num) n = len(num) 展开全文
头像 梅梅的双双
发表于 2024-03-26 10:22:58
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param num string字符串 * @return string字符串 */ export function maximumSwap(num: string): string 展开全文
头像 梅梅的双双
发表于 2024-03-26 10:26:09
/** * 最大值直接放最前 * 注意细节处理 * * @param num string字符串 * @return string字符串 */ export function maximumSwap(num: string): string { const list = n 展开全文

问题信息

难度:
8条回答 1629浏览

热门推荐

通过挑战的用户

查看代码