zltzlt 发表于 2020-2-5 16:36:39

阴阳神万物主 发表于 2020-2-4 20:32
101应该也算对吧?
0 不就是以 0 开头的吗?

对。

zltzlt 发表于 2020-2-5 16:37:37

阴阳神万物主 发表于 2020-2-4 21:00
从格式上与他人做区别。
没有更改,减少一下行数。

解答错误

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

zltzlt 发表于 2020-2-5 16:38:21

TJBEST 发表于 2020-2-4 22:23
可能有点繁琐,但是结果应该没错

虽然繁琐,但效率挺高,28 ms{:10_275:}

zltzlt 发表于 2020-2-5 16:39:20

546623863 发表于 2020-2-4 22:27
顺便帮我把前面两次的评了。。。

收到

zltzlt 发表于 2020-2-5 16:46:03

546623863 发表于 2020-2-4 22:27
顺便帮我把前面两次的评了。。。

解答错误

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

zltzlt 发表于 2020-2-5 16:46:56

fan1993423 发表于 2020-2-4 22:41
好吧,我想了个比较奇特的方法

解答错误

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

zltzlt 发表于 2020-2-5 16:47:23

kinkon 发表于 2020-2-5 03:04
1001101算True还是False?

False

zltzlt 发表于 2020-2-5 16:47:52

kinkon 发表于 2020-2-5 01:19
学习阶段,参考大神们的

解答错误

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

多了一个 0。

"1023"

zltzlt 发表于 2020-2-5 16:48:52

ll104567 发表于 2020-2-5 14:12
增加了一个判断,测试用例多给几个吧~

解答错误

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

fan1993423 发表于 2020-2-5 17:01:56

zltzlt 发表于 2020-2-5 16:46
解答错误

输入:"0235813"


你不是说累加序列里不会以0开头吗?我就没想0的事

zltzlt 发表于 2020-2-5 17:02:26

fan1993423 发表于 2020-2-5 17:01
你不是说累加序列里不会以0开头吗?我就没想0的事

哪里说了

fan1993423 发表于 2020-2-5 17:04:22

zltzlt 发表于 2020-2-5 17:02
哪里说了

你那个说明啊,02345这种也算序列塞

William4869 发表于 2020-2-5 17:06:02

zltzlt 发表于 2020-2-5 16:36
解答错误

输入:"198019823962"


再来,,我杠上了

zltzlt 发表于 2020-2-5 17:06:32

fan1993423 发表于 2020-2-5 17:04
你那个说明啊,02345这种也算序列塞

应该是我表述有误

kinkon 发表于 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)==len(str(int(s))):
                a,b=int(s),int(s[:i])+int(s)
         
            while str(b)==s:
                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'))

zltzlt 发表于 2020-2-5 17:17:14

kinkon 发表于 2020-2-5 17:15
改了

解答错误

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

fan1993423 发表于 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':
            return False
      b,c=s,s
      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

zltzlt 发表于 2020-2-5 17:25:45

fan1993423 发表于 2020-2-5 17:19
好吧,我加了一个判别式

解答错误

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

kinkon 发表于 2020-2-5 17:26:50

zltzlt 发表于 2020-2-5 17:17
解答错误

输入:"199111992"


1991+1=1992?
这题和原来提出的问题(1001101)是一样的100+1=101

zltzlt 发表于 2020-2-5 17:27:30

kinkon 发表于 2020-2-5 17:26
1991+1=1992?
这题和原来提出的问题(1001101)是一样的100+1=101

页: 1 2 [3] 4 5
查看完整版本: Python:每日一题 323