软件工程师面试知识与答案.docxVIP

  • 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)

1亿VIP精品文档

相关文档