|
发表于 2020-3-29 17:52:43
|
显示全部楼层
您再测一个这个,改进了一下,不知道快慢@zltzlt
- def fun361(num):
- def split(num):
- result = []
- while num:
- result.append(num%10)
- num = num // 10
- result.reverse()
- return result
- if num < 10:
- return num
- bits = split(num)
- M = len(bits)
- position = M
- state = False
- for i in range(0,M-1):
- if bits[i] == bits[i+1]:
- if state == False:
- position = i
- state = True
- else:
- pass
- elif bits[i] < bits[i+1]:
- if state == False:
- pass
- else:
- state = False
- position = M
- else:
- if state == True:
- break
- else:
- position = i
- break
- else:
- position = M
- if position > M - 1:
- return num
- else:
- temp = 0
- for i in range(0,position+1):
- temp += bits[i]*(10**(M-1-i))
- return temp - 1
复制代码 |
|