|
|
发表于 2020-3-28 21:17:56
|
显示全部楼层
本帖最后由 kinkon 于 2020-3-28 23:37 编辑
- def f361(n):
- while list(str(n)) != sorted(str(n)):
- n -= 1
- return n
复制代码
上面的可能超时了,试试下面的
- def f361(n):
- num = list(str(n))
- tmp = []
- for i in range(len(num)-2,-1,-1):
- if num[i] > num[i+1]:
- num[i] = str(int(num[i])-1)
- a = len(num) - 1
- tmp = []
- while a > i:
- num[a] = '9'
- tmp.append(num[a])
- a -= 1
- else:
- tmp.append(num[i+1])
- tmp.append(num[i])
- return int(''.join(tmp)[::-1])
复制代码
再优化一下
- def p361(n):
- num = list(str(n))
- s = ''
- for i in range(len(num)-2,-1,-1):
- if num[i] > num[i+1]:
- num[i] = str(int(num[i])-1)
- s = ''
- s += '9'* len(num[i+1:])
- else:
- s += num[i+1]
- s += num[i]
- return int(s[::-1])
复制代码 |
评分
-
查看全部评分
|