📜  微软Office印度面试经历|套装 170(2 年期)

📅  最后修改于: 2021-09-23 05:26:51             🧑  作者: Mango

第1轮:
验证一个中缀算术表达式字符串(大括号和方括号类似于圆括号):(1+2)*{[90*3]-[67+8-9]}

建议答案:Djikstra 的调车场

面试官的回答:解析器树

第二轮:

给定书架,根据书的任何特定属性对这些书进行分类,例如按字母顺序增加作者姓名、类别、出版日期等。书的属性值必须从外部服务中获取,调用是昂贵的。

约束:O(1) 空间,应尽可能减少获取书籍优先级的调用。

建议的答案:使用与书籍属性相关联的优先级映射进行快速排序,一种修改后的分区方案,其中每个元素的优先级都被提取一次,总共 nlogn 调用。

约束变化:最小掉期。

建议答案:

1. 选择排序,时间复杂度为 O(n^2),空间复杂度为 O(1)。 – n 交换

2. 空间和时间为 O(n) 的桶排序。 – 0 次交换

第 3 轮:

给定一个很长的字符串和一个变换映射,用它们的结果变换替换所有出现的针字符串,例如

input_string = “abcd;lt;qwer;gt;asd;”
map = {";lt;" : "<", ";gt;" : ">"}
transform(input_string, map) // should equal “abcdasd;”

提出的答案:通过字符处理字符和更换后缀如果它与任何针的匹配朴素溶液。

微软的所有练习题!