鱼C论坛

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

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

[复制链接]
 楼主| 发表于 2020-2-5 16:36:39 | 显示全部楼层
阴阳神万物主 发表于 2020-2-4 20:32
101应该也算对吧?
0 不就是以 0 开头的吗?

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

使用道具 举报

 楼主| 发表于 2020-2-5 16:37:37 | 显示全部楼层
阴阳神万物主 发表于 2020-2-4 21:00
从格式上与他人做区别。
没有更改,减少一下行数。

解答错误

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

使用道具 举报

 楼主| 发表于 2020-2-5 16:38:21 | 显示全部楼层
TJBEST 发表于 2020-2-4 22:23
可能有点繁琐,但是结果应该没错

虽然繁琐,但效率挺高,28 ms
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-5 16:39:20 | 显示全部楼层
546623863 发表于 2020-2-4 22:27
顺便帮我把前面两次的评了。。。

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

使用道具 举报

 楼主| 发表于 2020-2-5 16:46:03 | 显示全部楼层
546623863 发表于 2020-2-4 22:27
顺便帮我把前面两次的评了。。。

解答错误

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

使用道具 举报

 楼主| 发表于 2020-2-5 16:46:56 | 显示全部楼层
fan1993423 发表于 2020-2-4 22:41
好吧,我想了个比较奇特的方法

解答错误

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

使用道具 举报

 楼主| 发表于 2020-2-5 16:47:23 | 显示全部楼层
kinkon 发表于 2020-2-5 03:04
1001101算True还是False?

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

使用道具 举报

 楼主| 发表于 2020-2-5 16:47:52 | 显示全部楼层
kinkon 发表于 2020-2-5 01:19
学习阶段,参考大神们的

解答错误

输入:"1023"
输出:True
预期结果:False

多了一个 0。

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

使用道具 举报

 楼主| 发表于 2020-2-5 16:48:52 | 显示全部楼层
ll104567 发表于 2020-2-5 14:12
增加了一个判断,测试用例多给几个吧~

解答错误

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

使用道具 举报

发表于 2020-2-5 17:01:56 | 显示全部楼层
zltzlt 发表于 2020-2-5 16:46
解答错误

输入:"0235813"

你不是说累加序列里不会以0开头吗?我就没想0的事
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-5 17:02:26 | 显示全部楼层
fan1993423 发表于 2020-2-5 17:01
你不是说累加序列里不会以0开头吗?我就没想0的事

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

使用道具 举报

发表于 2020-2-5 17:04:22 | 显示全部楼层

你那个说明啊,02345这种也算序列塞
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-5 17:06:02 | 显示全部楼层
zltzlt 发表于 2020-2-5 16:36
解答错误

输入:"198019823962"

再来,,我杠上了

评分

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

查看全部评分

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

使用道具 举报

 楼主| 发表于 2020-2-5 17:06:32 | 显示全部楼层
fan1993423 发表于 2020-2-5 17:04
你那个说明啊,02345这种也算序列塞

应该是我表述有误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-2-5 17:15:26 | 显示全部楼层
本帖最后由 kinkon 于 2020-2-5 17:16 编辑
zltzlt 发表于 2020-2-5 16:47
解答错误

输入:"1023"


改了
def f323(s):
    l=len(s)
    if l<3:return False
    for i in range(1,l//3+1):
        for j in range(i,l//2+1):
            c=i+j
            if len(s[i:c])==len(str(int(s[i:c]))):
                a,b=int(s[i:c]),int(s[:i])+int(s[i:c])
          
            while str(b)==s[c:c+len(str(b))]:
                c+=len(str(b))
                if c==l:return True
                a,b=b,a+b
    return False
    
print(f323('1023'))
print(f323('199100199'))
print(f323('112359'))
print(f323('199100198'))
print(f323('011'))
print(f323('1001101'))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-5 17:17:14 | 显示全部楼层

解答错误

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

使用道具 举报

发表于 2020-2-5 17:19:54 | 显示全部楼层
zltzlt 发表于 2020-2-5 17:06
应该是我表述有误

好吧,我加了一个判别式
def fun323(s):
    if len(s)<3:return False
    def recursive(a,s,j):
        if len(a)>1 and a[0]=='0':
            return False
        b,c=s[i:i+j],s[i+j:]
        t=str(int(a)+int(b))
        if c==t:
            return True
        elif c.startswith(t):
            return recursive(b,' '*i+c,len(t))
        else:
            return False
    for i in range(1,len(s)-1):
        for j in range(1,(len(s)-i)//2+1):
            a=s[:i]
            if recursive(a,s,j):return True
    return False
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-5 17:25:45 | 显示全部楼层
fan1993423 发表于 2020-2-5 17:19
好吧,我加了一个判别式

解答错误

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

使用道具 举报

发表于 2020-2-5 17:26:50 | 显示全部楼层
zltzlt 发表于 2020-2-5 17:17
解答错误

输入:"199111992"

1991+1=1992?
这题和原来提出的问题(1001101)是一样的100+1=101
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-2-5 17:27:30 | 显示全部楼层
kinkon 发表于 2020-2-5 17:26
1991+1=1992?
这题和原来提出的问题(1001101)是一样的100+1=101

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 02:01

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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