查看: 1392| 回复: 3
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] 请教关于133的 clone graph 测试用例,python

全局:

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
本帖最后由 kuboy 于 2019-7-3 20:18 编辑

我真是太蠢了,一道题拖拉了一整天,想请教各位这道题该怎么测试呢,我不知道该怎么用给定的 class Node 表达 {"$id":"1","neighbors":[{"$id":"2","neighbors":[{"$ref":"1"},{"$id":"3","neighbors":[{"$ref":"2"},{"$id":"4","neighbors":[{"$ref":"3"},{"$ref":"1"}],"val":4}],"val":3}],"val":2},{"$ref":"4"}],"val":1} 。正常的测试如下:

  1. class Solution:
  2.     def cloneGraph(self, node):
  3.         .....

  4. if __name__ == '__main__':
  5.     s = Solution()
  6.     graph = {"xx":xx}    s.cloneGraph(graph)
复制代码


但是上边那一连串输出我不知道该怎么处理,但是下面这样肯定是不对的:

  1. if __name__ == '__main__':
  2.     s = Solution()
  3.     graph = {"$id":"1","neighbors":[{"$id":"2","neighbors":[{"$ref":"1"},{"$id":"3","neighbors":[{"$ref":"2"},{"$id":"4","neighbors":[{"$ref":"3"},{"$ref":"1"}],"val":4}],"val":3}],"val":2},{"$ref":"4"}],"val":1}
  4.     s.cloneGraph(graph)
复制代码

我感觉应该想链表那样的,类似:
  1. if __name__ == '__main__':
  2.     s = Solution()
  3.     one = Node(1, two)
  4.     two = Node(2, three)
  5.     s.cloneGraph(graph)
复制代码



请教各位提供一个完成的测试用例,我为什么不跳过这道题,浪费了整整一天时间,现在内心一阵空虚,真是弟弟行为









上一篇:【请教大家】从零开始刷算法题,应该如何开始?
下一篇:实习刷题难以平衡吐吐槽
🔗
stellari 2019-7-4 10:04:32 | 只看该作者
全局:
你只需要先建立一个list存放所有的node,然后单独设置每个node的neighbors即可。比如这样:

  1. ns = [Node(i, []) for i in range(0, 5)]
  2. ns[1].neighbors = [ns[2], ns[4]]
  3. ns[2].neighbors = [ns[1], ns[3]]
  4. ns[3].neighbors = [ns[2], ns[4]]
  5. ns[4].neighbors = [ns[3], ns[1]]
  6. s.cloneGraph(ns[1])
复制代码


0号node没有使用是为了让node在ns列表中的下标和该node的val相同,这样你看着可能更直观一点。

另外,考虑到这是一个很有规律的环状图,所以设置neighbors的过程也可以写成一个循环,这样在node数多的时候会更方便。
回复

使用道具 举报

🔗
 楼主| kuboy 2019-7-4 18:14:15 | 只看该作者
全局:
本帖最后由 kuboy 于 2019-7-4 18:20 编辑
stellari 发表于 2019-7-4 10:04
你只需要先建立一个list存放所有的node,然后单独设置每个node的neighbors即可。比如这样:

[mw_shl_cod ...

多谢,请问有什么办法能输出答案这种格式吗?
  1. {"$id":"1","neighbors":[{"$id":"2","neighbors":[{"$ref":"1"},{"$id":"3","neighbors":[{"$ref":"2"},{"$id":"4","neighbors":[{"$ref":"3"},{"$ref":"1"}],"val":4}],"val":3}],"val":2},{"$ref":"4"}],"val":1}
复制代码

背后做了什么处理,input 进去的真的也是这个字典吗,还是input 时候就已经做过处理了,我现在纠结的就是,我没法本地模拟这个输入输出,难受

补充内容 (2019-7-4 18:35):
这道题我也不会调试,打印全是 object 的地址,尴尬
回复

使用道具 举报

🔗
 楼主| kuboy 2019-7-5 22:42:25 | 只看该作者
全局:
stellari 发表于 2019-7-4 10:04
你只需要先建立一个list存放所有的node,然后单独设置每个node的neighbors即可。比如这样:

[mw_shl_cod ...

多谢,我已经大概弄懂了,虽然代码提交总是 Runtime Error
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

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