鱼C论坛

 找回密码
 立即注册
查看: 1681|回复: 5

[已解决]做过此题的大佬 能不能分享下代码 跪拜

[复制链接]
发表于 2017-12-4 23:21:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已知有两个列表:
a = [22, 18, -6, 9 ,17, 3, 0, 9]
b = [12, 20, 30, 3, 6]
要将b中每个元素依次插入a中,插入位置为a中左右2个元素之和等于要插入的b中元素,例如b中的12插在18和-6之间。
最后输出新的a列表。

最佳答案
2017-12-5 00:21:17
  1. a = [22, 18, -6, 9 ,17, 3, 0, 9]
  2. b = [12, 20, 30, 3, 6]
  3. new = a[0:0]
  4. i = 0
  5. while i < len(a)-1:
  6.     new.extend([a[i]+a[i+1],a[i+1]]) if a[i] + a[i+1] in b else new.extend([a[i+1]])
  7.     i += 1
  8. print(new)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-12-5 00:21:17 | 显示全部楼层    本楼为最佳答案   
  1. a = [22, 18, -6, 9 ,17, 3, 0, 9]
  2. b = [12, 20, 30, 3, 6]
  3. new = a[0:0]
  4. i = 0
  5. while i < len(a)-1:
  6.     new.extend([a[i]+a[i+1],a[i+1]]) if a[i] + a[i+1] in b else new.extend([a[i+1]])
  7.     i += 1
  8. print(new)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-5 00:29:11 | 显示全部楼层
贴一个比较水的代码,不过容易懂

  1. a = [22, 18, -6, 9, 17, 3, 0, 9]
  2. b = [12, 20, 30, 3, 6]

  3. for i in range(len(b)):
  4.     for j in range(len(a)-1):
  5.         print("length a is : %d" % len(a))
  6.         if b[i] == (a[j] + a[j+1]):
  7.             a.insert(j+1, b[i])
  8.             print("the num insert is b[%d] = %d" % (i, b[i]))
  9.             j = 0
  10.             break


  11. for i in range(len(a)):
  12.     print(a[i], end=' ')

  13. print("length a is : %d" % len(a))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-5 09:09:40 | 显示全部楼层
提供一个算法思路
先将a中两两元素求中值
然后判断这个值在不在b中
如果不在就移除
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-5 23:02:47 | 显示全部楼层
tailor_long 发表于 2017-12-5 00:29
贴一个比较水的代码,不过容易懂

挺好的  谢谢 亲
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-5 23:44:22 | 显示全部楼层
ailulululu 发表于 2017-12-5 23:02
挺好的  谢谢 亲

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-3-4 13:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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