|
|
发表于 2019-4-27 18:25:58
|
显示全部楼层
- import time
- import math
- def test1():
- first = '0123456789'
- count = 1
- flag = 0
- #把切片下来的字符串类型数字排序后返回,例如:'16534' ---> '13456'
- def zhengli(x):
- li = ''
- temp = list(x)
- temp.sort()
- for o in temp:
- li += o
- return li
-
- #把字符串中指定的字符移除,例如移除4:'12asf456af' --> '12asf56af'
- def syzhengli(e,f):
- s = ''
- for t in e:
- if t != f:
- s += t
- return s
- for m in range(1,1000000):
- for n in range(9,-1,-1):
- sec = first[:]
- if n == 9:
- sec = sec[:8] + sec[9] + sec[8]
- if sec > first:
- first = sec
- break
- else:
- continue
- paixu = list(sec[n:])
- paixu.sort()
- for i in paixu:
- bijiao = sec[:n-1] + i + syzhengli(sec[n-1:],i)
- if not bijiao > first:
- continue
- else:
- first = bijiao[:n] + zhengli(bijiao[n:])
- flag = 1
- break
- if flag == 1:
- flag = 0
- break
-
- return first
- li = []
- start = time.perf_counter()
- print(test1())
- end = time.perf_counter()
- print(end-start)
复制代码 |
|