题解 | #最大数字交换#

最大数字交换

http://www.nowcoder.com/practice/ffcd59fbf5814d2e94c0e2f4a679473c

倒叙排序,交换不在当前位置的值,如果有多个值交换最右侧的因为求的是最大数

#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param num string字符串 
# @return string字符串
#
class Solution:
    def maximumSwap(self , num: str) -> str:
        # write code here
        num = list(num)
        num_sorted = sorted(num, reverse=True)
        if num == num_sorted: return "".join(num)
        i = 0
        while i < len(num):
            if num[i] != num_sorted[i]:
                idx = num[i + 1:][::-1].index(num_sorted[i])
                num[i], num[-(idx + 1)] = num[-(idx + 1)], num[i]
                return "".join(num)
            i += 1
        return ""
全部评论

相关推荐

06-19 19:06
门头沟学院 Java
码农索隆:别去东软,真学不到东西,真事
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务