Python 输入一个正整数,将该数各位上的数字重新排列,给出比原来数大的最小数和比原来数小的最大数
例:输入2651392641
输出
比原来数大的最小数2651394126
比原来数小的最大数2651392614
Python数字排序问题
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
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)
对每个数字计数,然后将原来的数字递加,或者递减,第一个满足数字哈希表相等的就是最接近的极值,我的这个做法技术含量不大.........你可以直接提取每一位数字,我用的字符串转换本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 2无用