zltzlt 发表于 2020-3-29 17:33:12

fan1993423 发表于 2020-3-28 20:25


40 ms

TJBEST 发表于 2020-3-29 17:34:34

zltzlt 发表于 2020-3-29 17:26
60 ms

还可以吧

BngThea 发表于 2020-3-29 17:34:51

zltzlt 发表于 2020-3-29 17:31
是超时不是解答错误哦

超时意味着效率低

不是,因为少了简单判断,里面进入了死循环,不是简单的超时问题

zltzlt 发表于 2020-3-29 17:36:49

BngThea 发表于 2020-3-29 17:34
不是,因为少了简单判断,里面进入了死循环,不是简单的超时问题

好吧,我刚刚复制了你上一次的代码{:10_266:}以为你理解错了我的意思

tommyyu 发表于 2020-3-29 17:49:51

def a(s):
    c = []
    n = 0
    flag = True
    while s:
      c.append(s % 10)
      s //= 10
      if n != 0:
            if c > c:
                flag = False
                break
      n += 1
    return flag
x = int(input("请输入:"))
c = ["木有"]
for i in range(x,0,-1):
    if a(i):
      c = i
print(c)

TJBEST 发表于 2020-3-29 17:52:43

zltzlt 发表于 2020-3-29 17:26
60 ms

您再测一个这个,改进了一下,不知道快慢@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 == bits:
            if state == False:
                position = i
                state = True
            else:
                pass
      elif bits < bits:
            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*(10**(M-1-i))
      return temp - 1

zltzlt 发表于 2020-3-29 17:54:23

TJBEST 发表于 2020-3-29 17:52
您再测一个这个,改进了一下,不知道快慢@zltzlt

44 ms

zltzlt 发表于 2020-3-29 19:36:18

一个账号 发表于 2020-3-28 20:47


超时

zltzlt 发表于 2020-3-29 21:32:23

kinkon 发表于 2020-3-28 21:17
上面的可能超时了,试试下面的

再优化一下

44 ms

zltzlt 发表于 2020-3-29 21:33:39

Herry2020 发表于 2020-3-28 21:31
n = 332
s = str()
def fun361(n):


输入 393457075 超时

zltzlt 发表于 2020-3-29 21:36:51

mdphd 发表于 2020-3-28 21:37
请楼主帮忙看看我写的359、360,谢谢!
不知道为什么直到刚刚才刷新出来这三天的每日一题,才做的……{: ...

解答错误

输入:332
输出:329
预期结果:299

fan1993423 发表于 2020-3-29 21:49:50

为什么我速度算快的,加的鱼币还比他们少啊

zltzlt 发表于 2020-3-29 21:50:28

fan1993423 发表于 2020-3-29 21:49
为什么我速度算快的,加的鱼币还比他们少啊

实在没鱼币了,明天再补上吧

fan1993423 发表于 2020-3-29 21:53:16

{:10_250:}

_Konglong 发表于 2020-3-29 22:32:47

本帖最后由 _Konglong 于 2020-3-29 22:37 编辑

def f361(n):
    list1 = []
    jishu = 0
    wenben = ""
    if len(n) == 1:
      print(n)
      return n
    for i in range(int(n)):
      list1.append(int(i+1))
    for e in range(len(list1)):
      list2 = list(str(list1.pop()))
      for r in range(len(list2)):
            yi = list2
            if r == len(list2)-1:
                break
            er = list2
            if yi > er:
                break
            else:
                jishu += 1
            if jishu == len(list2)-1:
                for o in list2:
                  wenben += str(o)
                print(wenben)
                return o
      jishu = 0
while True:
    f361(input("输入"))


萌新写的 不是很好{:10_269:}

whosyourdaddy 发表于 2020-3-29 22:47:19

def func361(n):
    temp = str(n)
    t = 0
    for i in range(len(temp)-1):
      if temp<temp:
            t += 1
      elif temp>temp:
            m = int(temp)-1
            temp = temp[:t]+ str(m)+ '9'*(len(temp)-t-1)
            return int(temp)
    return int(temp)

zltzlt 发表于 2020-3-30 13:21:34

chen971130 发表于 2020-3-28 21:44
我的代码好长

输入 114191537 超时

zltzlt 发表于 2020-3-30 13:22:27

sjtuszy 发表于 2020-3-28 23:39


解答错误

输入:332
输出:329
预期结果:229

zltzlt 发表于 2020-3-30 13:23:50

sYMMetrY 发表于 2020-3-29 00:27


解答错误

输入:10
输出:'09'
预期结果:9

需要返回整数

zltzlt 发表于 2020-3-30 13:26:14

ouyunfu 发表于 2020-3-29 03:14


解答错误

输入:10
输出:'09'
预期结果:9

需要返回整数
页: 1 2 [3] 4
查看完整版本: Python:每日一题 361