摘要:import java.util.*;public class RemoveInvalidParentheses { public List removeInvalidParentheses(String s) { List r
最近在网上看了个帖子,说极氪汽车的员工爆料公司“领导菜、技术无、学历低、管理差”有些领导不写代码只写PPT,干得好是他能力强,干得不好就是你水平低。
网友们都说,这种情况哪都有,只不过现在的年轻人不吃这一套了。
这让我想起自己刚入行时的一个项目,领导也是一通操作猛如虎,结果需求变三遍,工期缩一半,最后代码全靠加班肝完。
领导拿着成果上台讲得头头是道,直接被老板夸“有魄力”。而我们团队?全员保温杯泡枸杞续命。☕
不过,说句实话,领导这活儿也不好干。他们既要“接锅”,又得让大家觉得自己是个有方向的舵手。
问题是,很多人只学会了“接锅”和“吹牛”,却忘了自己其实还需要点“硬实力”来服人。
职场嘛,大家都在谋生。咱们也不能指望所有领导都自带大佬光环。能碰到靠谱的算运气,碰不到……就当运气差了。
你们公司有这样的“领导”吗?评论区见~
今天聊个程序员日常:删除无效的括号。别说,这道题表面看着平平无奇,但一上手,我直接一口老血。反正我第一次做的时候,整个人都快被括号绕晕了。
这题要求从一个字符串中删除最少数量的括号,使得最终的括号字符串是合法的,返回所有可能的结果。比如:
输入: ")"输出: ["", "()"]输入: "(a))"输出: ["(a)", "(a)"]输入: ")("输出: [""]核心点就是“合法”和“最少删除”。合法就是括号得配对,不能多也不能少;最少删除就是咱们得保证输出里没有乱删的多余情况。
这题看着像DFS(深度优先搜索)的菜,实则还真离不开BFS(广度优先搜索)。为啥?因为最少删除需要层层遍历,一旦找到合法结果,就不用继续往下删了。
简单来说,咱们要:
先上代码,具体细节咱们一会慢慢聊:
import java.util.*;public class RemoveInvalidParentheses { public List removeInvalidParentheses(String s) { List result = new ArrayList; if (s == null) return result; Queue queue = new LinkedList; Set visited = new HashSet; queue.offer(s); visited.add(s); boolean found = false; while (!queue.isEmpty) { String current = queue.poll; if (isValid(current)) { result.add(current); found = true; // 找到一个合法结果后,停止继续删 } if (found) continue; for (int i = 0; i总之,这题让人爱恨交加,既考验逻辑也训练心态。你还做过哪些类似的括号问题呢?欢迎在评论区唠唠,咱们一起掏掏算法的“家底儿”。
来源:麻辣小王子