秋招面试,给面试官整应激了

B站影视 日本电影 2025-11-18 11:51 1

摘要:今天看到一位同学发帖说,在boss上看到一句话“谁管你能力多强,刘强东来了也是如此,面试官觉得你不行就是不行”,由此想到自己的面试经历,有一次面试官问了一个ddos的场景,因为不知道ddos什么意思,就说了一句“不好意思我没了解过网络安全”,直接给面试官整应激

大家好,我就是那个在B站讲算法的「华南溜达虎」。

面试本来该是双向奔赴,有时候却会变成单向霸凌。

今天看到一位同学发帖说,在boss上看到一句话“谁管你能力多强,刘强东来了也是如此,面试官觉得你不行就是不行”,由此想到自己的面试经历,有一次面试官问了一个ddos的场景,因为不知道ddos什么意思,就说了一句“不好意思我没了解过网络安全”,直接给面试官整应激了,说,你没学过就不会吗?那刘强东也没学过啊,云云。最后楼主解释了一下面试官才平复了一点。

你刷LeetCode刷到吐,背八股文背到秃,结果面试官心情不好、昨晚没睡好,或者单纯想装一下,一句“你不会就是不行”直接让你原地蒸发。大家遇到过同款面试官吗?欢迎评论区分享。

言归正传,今天我们来分享一道高频面试题「有效括号」。

给定一个只包括 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。

左括号必须以正确的顺序闭合。

每个右括号都有一个对应的相同类型的左括号。

举个例子:

输入:s = ""输出:true输入:s = ""输出:false

思路解析

首先要理解题意,什么才是题目中描述的有效括号,比如s = "({)}", 如下图,把同类型的括号单独按顺序拆出来,每种类型的括号都是能闭合的,但是s并不是合法的。

因为最先和'{'闭合的是')',违背了 左括号必须用相同类型的右括号闭合 这个原则。而且上面的这种拆法本身也违反了 左括号必须以正确的顺序闭合的原则。

很多同学都因为没有理解透题意面试的时候没有把这道题正确的做出来,非常可惜。

理清题意,只需要借助栈,遍历字符串当元素为'('、'{'、'['就压栈,遇到')'、'}'、']'就和栈顶元素比较,能组成合法括号就弹出栈顶元素,不能组成合法括号就返回false,直到遍历完字符串,栈为空就返回true。整个匹配过程就像我们平时玩的小游戏消消乐。

举个简单的例子,s = "({})",匹配过程如下图:

遍历完s以后,栈是空的,这就说明字符串s是合法的。

下面给出c++和python两种代码实现。

C++代码

class Solution {public: //判断两个字符能否组成合法的括号 bool isMatch(char& left, char& right) { if (left == '(' && right == ')') { returntrue; } elseif (left == '{' && right == '}') { returntrue; } elseif (left == '[' && right == ']') { returntrue; } else { returnfalse; } } bool isValid(string s) { stackclass Solution: # 判断两个字符能否组成合法的括号 def isMatch(self, left: str, right: str) -> bool: return (left == '('and right == ')') or (left == '{'and right == '}') or (left == '['and right == ']') def isValid(self, s: str) -> bool: stack = s_len = len(s) # s的长度为奇数,一定是非法的 if s_len % 2 != 0: returnFalse for ch in s: # 遇到'('、'{'、'['就压栈 if ch == '('or ch == '{'or ch == '[': stack.append(ch) # 遇到')'、'}'、']'就和栈顶元素比较,能组成合法括号就弹出栈顶元素 # 栈的操作一定要小心,不要对空栈进行pop操作 elif stack and self.isMatch(stack[-1], ch): stack.pop else: returnFalse return len(stack) == 0

特别声明:以上内容仅代表作者本人的观点或立场,不代表新浪财经头条的观点或立场。如因作品内容、版权或其他问题需要与新浪财经头条联系的,请于上述内容发布后的30天内进行。

来源:新浪财经

相关推荐