楼主: 李浩泉
跳转到指定楼层
上一主题 下一主题
收起左侧

[Leetcode] LC Python 刷题笔记 有志者事竟成

   
🔗
 楼主| 李浩泉 2020-8-5 07:48:48 | 只看该作者
全局:
本帖最后由 李浩泉 于 2020-8-5 07:52 编辑

大神你脸书DE面试的是那级啊?
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-5 07:49:11 | 只看该作者
全局:
本帖最后由 李浩泉 于 2020-8-5 07:53 编辑
和你聊的兄弟,都进脸书啦?!早知道我就跟你聊了,
回复

使用道具 举报

全局:
李浩泉 发表于 2020-08-04 16:48:48
大神你脸书DE面试的是那级啊?
大神不敢当,IC5
回复

使用道具 举报

全局:
也不是de,面挂了
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-5 08:25:07 | 只看该作者
全局:
Wu_kong 发表于 2020-8-5 08:13
大神不敢当,IC5

我面的DE5,挂了,嘿嘿。
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-5 08:26:41 | 只看该作者
全局:
本帖最后由 李浩泉 于 2020-8-5 08:34 编辑

我太难了,接到面试通知后才开始刷题,才注册LC,才开始学Python。为了看明白 |=,上午自学,下午刷题,中午花点时间把现在单位的工作解决了,晚上做饭收拾卫生洗澡洗衣服。DE嘛,会SQL还不够吗?DE会编程了,还要SDE干什么???

他们问我虾图乱吗?我两周才出去采购一次,还找没人的时候,每天晚上收拾一下院子就算是放风了。我住在虾图,虾图发生了什么,我主要也是看微博才知道。



In Python 3.9+, new merge (|) and update (|=) operators are proposed between dictionaries.
Note: these are not the same as set operators mentioned above.

Given operations between two assigned dicts d1 and d2:

>>> d1 = d1 | d2                                           # 1
>>> d1 |= d2                                                 # 2
where d1 is equivalent via:

an assigned merge-right operation
an in-place merge-right (update) operation; equivalent to d1.update(d2)


Example

Here we apply merge (|) and update (|=) to dicts:

>>> d1 = {"a": 0, "b": 1, "c": 2}
>>> d2 = {"c": 20, "d": 30}

>>> # Merge, |
>>> d1 | d2
{"a": 0, "b": 1, "c": 20, "d": 30}
>>> d1
{"a": 0, "b": 1, "c": 2}

>>> # Update, |=
>>> d1 |= d2
>>> d1
{"a": 0, "b": 1, "c": 20, "d": 30}

回复

使用道具 举报

🔗
jinghuayuan 2020-8-5 08:31:23 | 只看该作者
全局:
haha so funny
回复

使用道具 举报

🔗
oily 2020-8-5 08:37:14 | 只看该作者
全局:
李浩泉 发表于 2020-8-5 06:45
做几道DE的真题,检验一下。SDE们也可以过来看看,试试。

# What Is Wrong With This Family?

这题看起来可以用topological sort然后判断最后一层是不是只有一个node来解决。
回复

使用道具 举报

全局:
年薪12 也不差了,我要有12 都不转行了
回复

使用道具 举报

🔗
 楼主| 李浩泉 2020-8-5 09:04:13 | 只看该作者
全局:
本帖最后由 李浩泉 于 2020-8-5 09:06 编辑

SDE写的模板,我又重写了一遍,

# 排除儿子的父亲是孙子
# 排除父亲的儿子是爷爷
# 排除兄弟互为父子
# 排除互为父子
# 排除多个父亲

WTF,what i have done for this beautiful day?

还在代码里使用了障眼法,完全可以直接写dic[son] |= {father} ,故意迷惑写成:dic[son] |= {father} | dic[father],想把我绕晕了是吧。


  1. from collections import defaultdict

  2. def is_family(tree):
  3.     dic = defaultdict(set)
  4.     for father, son in tree:
  5.         
  6.         # 排除互为父子
  7.         if father == son: return False
  8.         
  9.         # 排除儿子的父亲是孙子
  10.         if father in dic[son]: return False
  11.         
  12.         # 排除父亲的儿子是爷爷
  13.         if son in dic[father]: return False
  14.         
  15.         # 排除兄弟互为父子
  16.         if dic[father] & dic[son]: return False
  17.         
  18.         # 字典赋值
  19.         dic[son] |= {father}
  20.         
  21.     # 排除多个祖先
  22.     top = [person for person in dic if not dic[person]]
  23.     return len(top) == 1
复制代码




回复

使用道具 举报

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

本版积分规则

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