某HR吐槽:面试了不下千人,我最反感求职者面试时一直追问说这个岗位是干什么的,这只会暴露你的不重视、无知,毫无自主思考性
刚看到个贴子,说有HR吐槽:面试了上千人,最反感求职者追问“岗位具体干啥”,觉得这是不重视、无知。
我觉得这事吧,站在HR角度,确实希望候选人提前做功课,至少要知道岗位的大致职责,不然像是连简历都没读就跑来面试。但换个角度想,很多JD写得云里雾里,堆一堆“负责沟通协作、推动落地”这种话,求职者想问清楚细节,也很正常。
网友们的回复我看了看,有的说这是应聘者态度问题,有的觉得是岗位描述不透明。我比较认同后一种。岗位到底干什么,本来就是双向确认的环节,问清楚才能避免入职后鸡同鸭讲。与其觉得冒犯,不如HR也多点耐心,讲清楚对方未来要做的事,这才是负责任。【备注:文末可领最新资料】
面试题:赢得比赛的大学
小伙伴们我刚在公司楼下等外卖,顺手把这个题过了一遍…就是那个“赢得比赛的大学”,名字挺朴素,但别小看,很多同学在细节上丢分。啊对,我就按口语说说,别介意有点碎。
给一堆比赛记录,每条里有两所大学(或者直接有个winner字段),问最终哪所大学赢的场次最多。要是并列呢?一般按字典序最小,或者按出现最早,这个要看题目说法。没有特别说明我就用字典序吧,省事儿。
思路就两个字:计数
就是哈希表(dict)累加胜场。遍历每条比赛,把胜者的计数+1。最后从计数表里挑最大值;遇到并列,按字典序挑小的。数据量再大也就 O(n),内存 O(k)(k 是学校种类数)。这玩意儿稳定靠谱。
from typing import List, Dict, Tuple, Optional
defwinning_university(
matches: List[Dict[str, str]],
winner_key: str = "winner",
tiebreak: str = "lex"# "lex" 或 "first"
) -> Optional[str]:
"""
matches: 每场形如 {"home": "A", "away": "B", "winner": "A"} 或至少有 "winner"
winner_key: 胜者字段名(有的题叫"winner"、"winner_university"之类)
tiebreak: 并列时如何打破;"lex"按字典序,"first"按首次出现顺序
返回赢得最多场次的大学;若无比赛返回 None
"""
ifnot matches:
returnNone
wins: Dict[str, int] = {}
order: Dict[str, int] = {} # 记录首次出现顺序,给 tiebreak="first" 用
idx = 0
for m in matches:
if winner_key notin m:
# 如果没给 winner,就根据其他字段自己判断;这里保守处理
raise ValueError("比赛记录缺少胜者字段")
w = m[winner_key].strip()
if w == "":
# 空 winner 跳过或报错,看题意;我这里跳过
continue
if w notin order:
order[w] = idx
idx += 1
wins[w] = wins.get(w, 0) + 1
ifnot wins:
returnNone
if tiebreak == "first":
# 先按胜场降序,再按首次出现升序
best = min(
wins.items(),
key=lambda kv: (-kv[1], order[kv[0]])
)
else:
# 默认字典序打平:先按胜场降序,再按学校名升序
best = min(
wins.items(),
key=lambda kv: (-kv[1], kv[0])
)
return best[0]
# 小测一下
if __name__ == "__main__":
data = [
{"home": "PKU", "away": "THU", "winner": "THU"},
{"home": "FDU", "away": "PKU", "winner": "PKU"},
{"home": "SJTU", "away": "THU", "winner": "THU"},
{"home": "FDU", "away": "THU", "winner": "FDU"},
{"home": "PKU", "away": "SJTU", "winner": "PKU"},
]
print(winning_university(data)) # 默认字典序打平
print(winning_university(data, tiebreak="first"))
遍历一次 O(n),找最大也就 O(k)。这俩都线性,放心跑。
昨晚十一点多小李还在问我:1)winner 字段可能有前后空格,strip 一下,别阴沟里翻船。2)并列规则一定看清楚,有的题要输出所有并列大学,用列表排序返回。3)大小写不统一?统一成大写或小写再计数。4)输入可能为空或全是脏数据,记得返回 None 或空数组,别抛异常把评测机吓到。
行了我外卖到了…你先把并列规则定一下,要改我那行 key 函数就行,其他不动。
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领