- 1
- 0
- 约4.86千字
- 约 14页
- 2026-02-13 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年软件工程师面试知识与答案
一、编程语言与基础算法(5题,每题10分,共50分)
1.题目:
请实现一个函数,判断一个字符串是否是有效的括号组合(例如输入`{[]()}`应返回`true`,输入`{[)]}`应返回`false`)。要求使用栈的数据结构实现,并说明时间复杂度。
答案:
cpp
includestack
includestring
usingnamespacestd;
boolisValidParentheses(strings){
stackcharst;
unordered_mapchar,charmapping={{),(},{],[},{},{}};
for(charc:s){
if(mapping.count(c)){//如果是闭括号
if(st.empty()||st.top()!=mapping[c])returnfalse;
st.pop();
}else{//如果是开括号
st.push(c);
}
}
returnst.empty();
}
//时间复杂度:O(n),空间复杂度:O(n)
解析:
利用栈的特性,遍历字符串:遇到开括号入栈,遇到闭括号时检查栈顶是否匹配,若匹配则出栈,否则无效。最后栈为空则
原创力文档

文档评论(0)