鱼C论坛

 找回密码
 立即注册
查看: 10148|回复: 25

题目24:0,1,2,3,4,5,6,7,8,9的第100万个字典排列是什么?

[复制链接]
发表于 2019-4-27 18:25:58 | 显示全部楼层
  1. import time
  2. import math

  3. def test1():
  4.     first = '0123456789'
  5.     count = 1
  6.     flag = 0
  7.     #把切片下来的字符串类型数字排序后返回,例如:'16534' ---> '13456'
  8.     def zhengli(x):
  9.         li = ''
  10.         temp = list(x)
  11.         temp.sort()
  12.         for o in temp:
  13.             li += o
  14.         return li
  15.    
  16.     #把字符串中指定的字符移除,例如移除4:'12asf456af' --> '12asf56af'
  17.     def syzhengli(e,f):
  18.         s = ''
  19.         for t in e:
  20.             if t != f:
  21.                 s += t
  22.         return s

  23.     for m in range(1,1000000):
  24.         for n in range(9,-1,-1):
  25.             sec = first[:]
  26.             if n == 9:
  27.                 sec = sec[:8] + sec[9] + sec[8]
  28.                 if sec > first:
  29.                     first = sec
  30.                     break
  31.                 else:
  32.                     continue
  33.             paixu = list(sec[n:])
  34.             paixu.sort()
  35.             for i in paixu:
  36.                 bijiao = sec[:n-1] + i + syzhengli(sec[n-1:],i)
  37.                 if not bijiao > first:
  38.                     continue
  39.                 else:
  40.                     first = bijiao[:n] + zhengli(bijiao[n:])
  41.                     flag = 1
  42.                     break
  43.             if flag == 1:
  44.                 flag = 0
  45.                 break

  46.    
  47.     return first
  48. li = []
  49. start = time.perf_counter()
  50. print(test1())
  51. end = time.perf_counter()
  52. print(end-start)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-27 18:33:54 | 显示全部楼层

看不懂你这个解法的思路,大神给小弟科普一下呗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-5 03:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表