题解 | #最大数字交换#

最大数字交换

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
码农索隆:别去东软,真学不到东西,真事
点赞 评论 收藏
分享
06-14 19:09
门头沟学院 Java
darius_:给制造业搞的,什么物料管理生产管理,设备管理点检,最最关键的就是一堆报表看板。个人觉得没啥技术含量都是些基本的crud,但是业务很繁琐那种
点赞 评论 收藏
分享
07-07 11:33
江南大学 Java
已经在暑假实习了&nbsp;,没有明确说有hc,纠结实习到八月份会不会有点影响秋招毕竟感觉今年好多提前批
程序员小白条:92的话准备提前批,其他没必要,没面试机会的,而且你要准备充分,尤其八股和算法题
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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