鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: zltzlt

Python:每日一题 376

[复制链接]
 楼主| 发表于 2020-4-15 21:40:53 | 显示全部楼层
TJBEST 发表于 2020-4-15 21:39
@zltzlt
多改了一个-1,这次应该对了。

好了,135 ms
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-15 22:40:32 From FishC Mobile | 显示全部楼层
本帖最后由 kinkon 于 2020-4-16 05:58 编辑

这时间差得有点多啊,看来优化空间很大
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-16 01:16:20 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-19 12:27:24 | 显示全部楼层
  1. def f376(word1, word2):
  2.     overlap = 0
  3.     if len(word2) > len(word1):
  4.         t = word1
  5.         word1 = word2
  6.         word2 = t

  7.     for i in range(0, len(word1)):
  8.         
  9.         for j in range(0, len(word2)):

  10.             if word1[i] == word2[j]:
  11.                 a, count = 0, 1

  12.                 while 1:
  13.                     a += 1

  14.                     if (i+a > len(word1)-1) or (j+a > len(word2)-1):
  15.                         break

  16.                     if (word1[i+a] == word2[j+a]):
  17.                         count += 1
  18.                     else:
  19.                         break

  20.                 overlap = count if count > overlap else overlap
  21.     return (len(word1) - overlap) + (len(word2) - overlap)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-19 13:58:37 | 显示全部楼层
  1. def f376(word1, word2):
  2.     overlap = 0
  3.    
  4.     for i in range(0, len(word1)):
  5.         
  6.         for j in range(0, len(word2)):
  7.             
  8.             if word1[i] == word2[j]:
  9.                 a, count = 0, 1
  10.                
  11.                 while 1:
  12.                     a += 1
  13.                     
  14.                     if (i+a > len(word1)-1) or (j+a > len(word2)-1):
  15.                         break
  16.                     
  17.                     if (word1[i+a] == word2[j+a]):
  18.                         count += 1
  19.                     else:
  20.                         break
  21.                     
  22.                 overlap = count if count > overlap else overlap
  23.                
  24.     return (len(word1) - overlap) + (len(word2) - overlap)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 01:07:50 | 显示全部楼层
  1. def daily376(world1="sssas", world2="sssts"):
  2.     a = []
  3.     b = []
  4.     i = 0
  5.     k = len(world1)
  6.     t = len(world2)
  7.     j = 0
  8.     while i < k or j < t:
  9.         if i < k:
  10.             a.append(world1[i])
  11.         if world2[j] in a:
  12.             a.remove(world2[j])
  13.             j += 1
  14.         i += 1
  15.         if i == k and j != t:
  16.             if world2[j] not in a:
  17.                 b.append(world2[j])
  18.                 j += 1
  19.     print(len(a) + len(b))


  20. daily376()
复制代码

时间,空间复杂度都为log(n),
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-16 01:11:36 | 显示全部楼层
  1. def daily376(world1="sssas", world2="sssts"):
  2.     a = []
  3.     b = []
  4.     i = 0
  5.     k = len(world1)
  6.     t = len(world2)
  7.     j = 0
  8.     while i < k or j < t:
  9.         if i < k:
  10.             a.append(world1[i])
  11.         if world2[j] in a:
  12.             a.remove(world2[j])
  13.             j += 1
  14.         i += 1
  15.         if i >= k and j != t:
  16.             if world2[j] not in a:
  17.                 b.append(world2[j])
  18.                 j += 1
  19.     print(len(a) + len(b))


  20. daily376()
复制代码

遗漏一个条件world 1< world 2
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-15 22:01:24 | 显示全部楼层
  1. def fun376(word1,word2):
  2.     count = 0
  3.     pointer = 0
  4.     while pointer <= len(word2)-1:
  5.         if word1 == '':
  6.             count += 1
  7.             pointer += 1
  8.             continue
  9.         elif word1[0] != word2[pointer]:
  10.             word1 = word1[1:]
  11.             count += 1
  12.         elif word1[0] == word2[pointer]:
  13.             word1 = word1[1:]
  14.             pointer += 1
  15.     return count
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-16 04:21:07 | 显示全部楼层
不会,来看答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-19 17:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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