DfFdzbc 2022-05-15 20:21 采纳率: 100%
浏览 65
已结题

Python数字排序问题

Python 输入一个正整数,将该数各位上的数字重新排列,给出比原来数大的最小数和比原来数小的最大数
例:输入2651392641
输出
比原来数大的最小数2651394126
比原来数小的最大数2651392614

  • 写回答

4条回答 默认 最新

  • 鸡蛋酱$ 2022-05-15 20:44
    关注
    
    from collections import Counter
    
    
    class Solution:
        def __init__(self):
            pass
    
        def sort_max(self, num: int) -> int:
            """
            :param num:
            :return:
            """
            num_count = Counter(str(num))
            while True:
                num += 1
                buffer_json = Counter(str(num))
                if buffer_json == num_count:
                    return num
    
        def sort_min(self, num: int) -> int:
            """
            :param num:
            :return:
            """
            num_count = Counter(str(num))
            while True:
                num -= 1
                buffer_json = Counter(str(num))
                if buffer_json == num_count:
                    return num
    
    
    if __name__ == '__main__':
        st = 2651392641
        U = Solution()
        print("原数字:", st)
        the_max = U.sort_max(st)
        print("较大:", the_max)
        the_min = U.sort_min(st)
        print("较小:", the_min)
    
    

    img


    对每个数字计数,然后将原来的数字递加,或者递减,第一个满足数字哈希表相等的就是最接近的极值,我的这个做法技术含量不大.........你可以直接提取每一位数字,我用的字符串转换

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 5月23日
  • 已采纳回答 5月15日
  • 创建了问题 5月15日

悬赏问题

  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 有没有帮写代码做实验仿真的
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥30 vmware exsi重置后登不上
  • ¥15 易盾点选的cb参数怎么解啊
  • ¥15 MATLAB运行显示错误,如何解决?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容
  • ¥15 关于#stm32#的问题:CANOpen的PDO同步传输问题
  • ¥20 yolov5自定义Prune报错,如何解决?