鱼C论坛

 找回密码
 立即注册
楼主: zltzlt

[已解决]Python:每日一题 361

[复制链接]
 楼主| 发表于 2020-3-29 17:33:12 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-29 17:34:34 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-29 17:34:51 | 显示全部楼层
zltzlt 发表于 2020-3-29 17:31
是超时不是解答错误哦

超时意味着效率低

不是,因为少了简单判断,里面进入了死循环,不是简单的超时问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-29 17:36:49 | 显示全部楼层
BngThea 发表于 2020-3-29 17:34
不是,因为少了简单判断,里面进入了死循环,不是简单的超时问题

好吧,我刚刚复制了你上一次的代码以为你理解错了我的意思
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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[n] > c[n-1]:
                flag = False
                break
        n += 1
    return flag
x = int(input("请输入:"))
c = ["木有"]
for i in range(x,0,-1):
    if a(i):
        c[0] = i
print(c[0])

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
zltzlt + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-29 17:54:23 | 显示全部楼层
TJBEST 发表于 2020-3-29 17:52
您再测一个这个,改进了一下,不知道快慢@zltzlt

44 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-29 19:36:18 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-29 21:32:23 | 显示全部楼层
kinkon 发表于 2020-3-28 21:17
上面的可能超时了,试试下面的

再优化一下

44 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-29 21:33:39 | 显示全部楼层
Herry2020 发表于 2020-3-28 21:31
n = 332
s = str()
def fun361(n):

输入 393457075 超时
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

解答错误

输入:332
输出:329
预期结果:299
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-29 21:49:50 | 显示全部楼层
为什么我速度算快的,加的鱼币还比他们少啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-29 21:50:28 | 显示全部楼层
fan1993423 发表于 2020-3-29 21:49
为什么我速度算快的,加的鱼币还比他们少啊

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

1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-29 21:53:16 | 显示全部楼层

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
zltzlt + 1 + 1

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 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[r]
            if r == len(list2)-1:
                break
            er = list2[r+1]
            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("输入"))
萌新写的 不是很好

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
zltzlt + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-29 22:47:19 | 显示全部楼层
def func361(n):
    temp = str(n)
    t = 0
    for i in range(len(temp)-1):
        if temp[i]<temp[i+1]:
            t += 1
        elif temp[i]>temp[i+1]:
            m = int(temp[t])-1
            temp = temp[:t]+ str(m)+ '9'*(len(temp)-t-1)
            return int(temp)
    return int(temp)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
zltzlt + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-30 13:21:34 | 显示全部楼层

输入 114191537 超时
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-30 13:22:27 | 显示全部楼层

解答错误

输入:332
输出:329
预期结果:229
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-30 13:23:50 | 显示全部楼层

解答错误

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

需要返回整数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-30 13:26:14 | 显示全部楼层

解答错误

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

需要返回整数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 07:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表