|
发表于 2017-12-8 12:27:40
|
显示全部楼层
本帖最后由 gunjang 于 2017-12-10 09:59 编辑
- #http://bbs.fishc.com/thread-100954-1-1.html
- def next_int(m):
- m = str(m)
- if len(m)==1: #one digit
- return None
- for i in range(len(m)-2, -1, -1):
- if m[i] < m[i+1]: break
- if (i==0) and (m[0] >= m[1]): #max number
- return None
- for j in range(len(m)-1, i, -1):
- if m[j] > m[i]: break
- return int(m[:i]+m[j]+m[len(m)-1:j:-1]+m[i]+m[j-1:i:-1])
- #输入m = 28543211,输出n = 31122458
- print(28543211, next_int(28543211))
- #24531 25134
- print(24531, next_int(24531))
- print(54321, next_int(54321))
- print(next_int(3))
- print(4054321, next_int(4054321))
复制代码 |
评分
-
查看全部评分
|