zoukankan      html  css  js  c++  java
  • 刷题(十二)

    题目

    让函数PermulationStep(num)接受传递的num参数,并使用相同的数字返回大于num的下一个数字
    例如:如果num为123,则返回132; 如果为12345,则返回12354. 如果一个数字没有更大的排列,则返回-1(即999)

    例子
    输入:11121
    输出:11211

    输入:41352
    输出:41532

    分析

    这里可以使用while...else...的语法,当满足更大排列的时候,在while中执行一定的算法,返回下一个大于num的数字,如果不满足更大排列(比如只有一位小数、或者三位数字都相同),这时候执行不了while中的算法,直接进入else。python中有while...else...,for...else的特殊用法,表示当while/for循环正常执行完而不退出的情况下,接着执行else代码块,而一旦while/for中跳出了循环,就不会执行else代码块

    代码实现

    def permulationstep(num):
        s = list(str(num))
        i = len(s) - 1
        while i > 0:
            if s[i - 1] < s[i]:
                s[i - 1], s[i] = s[i], s[i - 1]
                return s
            else:
                i = i - 1
        else:
            return -1
    
    
    print(permulationstep(11121))
    
  • 相关阅读:
    Yii AR Model 查询
    学习进度4
    学习进度三
    个人每日总结7
    个人每日总结6
    个人每日总结5
    个人每日总结4
    个人冲刺承担的任务项目的用户模板和用户场景模板
    个人每日总结3
    个人每日总结2
  • 原文地址:https://www.cnblogs.com/my_captain/p/12821748.html
Copyright © 2011-2022 走看看