升任小组长不到三个月,大小事都找我,快被榨干了。。
刚刷到一个网友吐槽:升任小组长才三个月,已经被大家各种事情榨干,连打印机不会用也得找他。我作为程序员看了是真有感触😂。技术岗晋升,看似地位高了,其实杂事也多了。代码没跑起来找你、需求模糊找你,感觉像“团队万能接口”,只要有bug就得背锅。
网友回帖有人劝多沟通,有人建议甩锅,但我觉得吧,程序员升小组长,最考验的其实是“抗压能力”和“分工意识”。什么都揽在自己身上,最后肯定累到怀疑人生。适当授权,多信任队友,其实效率才高。不然你就成了团队的“救火队长”,一天到晚被需求和小问题牵着鼻子走,技术成长也被耽误了。
总的来说,升职光环背后,更多是责任和挑战。要学会拒绝和分工,才能撑得更久,别让自己成了团队的“能者多劳”牺牲品。【备注:文末可领最新资料】
面试题:复原 IP 地址
其实复原IP地址这题,说白了,就是给你一个纯数字的字符串,比如"25525511135",然后你得把它拆成合法的IP地址段。每一段都要在0到255之间,还不能有前导零(比如"01"就不行,只有"0"才行),一共分成四段。你们是不是听着有点像小时候切西瓜,每刀下去都得想好下一刀咋切,不然就切烂了。
我平时写代码其实挺随意的,也没啥严谨套路,都是想一步写一步。说实话,这种题最简单粗暴的方法就是回溯。暴力枚举每一刀怎么切,切四刀,看看切出来的是不是合法。合法就加到结果里。小李还非得问我能不能不用递归...我说你要不用递归,你得维护一堆状态,反而容易出bug,出门吃个烧烤都不放心他。
反正,我写代码的时候一般都是这样——
defrestore_ip_addresses(s):
res = []
path = []
defbacktrack(start):
if len(path) == 4:
if start == len(s):
res.append('.'.join(path))
return
for l in range(1, 4): # 每一段长度1~3
if start + l > len(s):
break
seg = s[start:start + l]
# 不能有前导零,且不能大于255
if (len(seg) > 1and seg[0] == '0') or int(seg) > 255:
continue
path.append(seg)
backtrack(start + l)
path.pop()
backtrack(0)
return res
这玩意儿你运行下,给它个"25525511135",结果就是["255.255.11.135","255.255.111.35"],也就这俩。你想想吧,切出来的段数要对,数值也要对,前导零还要防。其实这个递归里,每切一段就判断一下,如果不符合要求立马剪掉,省得后面再做无用功。
有一次我们组内做竞赛,那个小王就写了个for循环嵌套四层,硬切四刀,也是能过,不过看着就脑壳疼,万一以后IP变成IPv6你还写16层啊?
对了,你们要是面试遇到类似题,面试官多半就是想看你会不会回溯,思路是不是清楚。别想着优化啥的,这玩意儿输入最多12位,暴力点也能过。写清楚,逻辑别绕弯子,面试官就挺满意了。
哦对,还有人经常问能不能用正则直接切。我劝你别折腾了,这题用正则脑袋都会乱,尤其判断前导零那块儿,写复杂了自己都看不懂。
-END-
我为大家打造了一份RPA教程,完全免费:songshuhezi.com/rpa.html
虎哥作为一名老码农,整理了全网最全《python高级架构师资料合集》,总量高达650GB,点击下方公众号回复关键字 python 全部免费领