难度较大的微软面试题

难度较大的微软面试题一面 英文自我介绍 第一题是个模拟 给一种字符串加密方法 加密过程是把一个串不断左右左右移动 abcde gt dbace 你需要写一个还原函数 简单模拟 注意长度奇数偶数分开讨论 O n 解决 但是可以常数小一点 第二题 给一个森林 数组形式 每个树有个高度 现在我要选一个高度 高于这个高度的树木会被砍下 我只砍一次 在给定个目标树木和 target 要求看下的树木之和在 gt target 基础上尽可能小 求最接近的答案简单的二分 O n check

一面:

英文自我介绍,

第一题是个模拟,给一种字符串加密方法,加密过程是把一个串不断左右左右移动: abcde => dbace,你需要写一个还原函数,简单模拟,注意长度 奇数偶数分开讨论。。O(n)解决。。但是可以常数小一点。。

第二题。给一个森林(数组形式),每个树有个高度,现在我要选一个高度,高于这个高度的树木会被砍下,我只砍一次,在给定个目标树木和target, 要求看下的树木之和在>= target 基础上尽可能小,求最接近的答案

简单的二分。。。 O(n) check…  但是据说。。计数排序可以O(n)排序树木。。。 一旦有序。。记录后缀和然后再二分中套个二分就可以让时间复杂度变成 O(n + log(n) * log(n) )。。

 

二面:

直接做题,把中文数字转化为阿拉伯数字, 比如 一百零一 =》 101, 二零一九 =》 2019 ,

分两种情况。。

第一种情况就是纯数字。 check下字串。不带 百、十、万,只包含一、二、三。。。这样的,直接暴力处理。

第二种情况就是代表一个有大小的数字: 三种解法

O( n * log(n) ) : 直接暴力递归, 每次找当前串中最大的部分 然后划分左右部分,左边计算完乘以中间最大值再加上右边部分, 当当前串长度为1特判。零也要特判,(比如一百零一里的零其实没啥特殊意义)

O( n ) : 单调栈从左到右扫一遍, 出栈时特殊处理一下,把栈顶元素累加到当前值上,最后再把当前值入栈,结果就是栈内元素累加和。

O( n ) 空间复杂度小一点的 : 从右到左去扫,记录最大值,累加。。。

 

 

2、取整问题

例如3.14取整到3.1,3.15取整到3.2,3.25取整到3.2,3.取整3.3。先说规则以及为什么要这么取整。然后码代码,给float和取整位数n。

(这个是四舍六入五成双问题)

 

(1)被修约的数字小于5时,该数字舍去;

(2)被修约的数字大于5时,则进位;

(3)被修约的数字等于5时,要看5前面的数字,若是奇数则进位,若是偶数则将5舍掉,即修约后末尾数字都成为偶数;若5的后面还有不为“0”的任何数,则此时无论5的前面是奇数还是偶数,均应进位。

 

微软的面试官确实比较nice的,外企一般就是考coding

一面:

自我介绍,简单问了项目

算法题是乐扣的767题,事后才知道。。一开始不太会做,后来和面试官交流交流,有了思路,然后最后还讨论了为啥要排序,在我的碎碎念下我知道了为啥要这么做,因为当时我只是直觉要排序,,最后面试官说挺好的。

给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。

若可行,输出任意可行的结果。若不可行,返回空字符串。

 

二面:

二面一开始问我有没有英文面试,我说没有。他说让我英文自我介绍一下,,我没准备,于是鼓起勇气磕磕巴巴的说完了。。面试官期间会说恩这类语气词,表示他听懂了哈哈

算法题是,微软小冰,根据语音输入的是一些语言的金额,怎么转化为书面的数字金额。类似于一千二百万亿五百万六千七百零二十,转化为数字。

一开始不会做,然后想了想,用字符串分隔和dfs递归勉强work了。。不过有一些细节没有处理,不过面试官可以了,又问有没有什么优化的方法,别的思路,我想了一下,,表示没有别的(我是个渣渣)

又问了一下关于通信懂多少,问sql学过吗之类的。

 

过了大概不到一个周吧,收到了意向书,是我收到的第一个正式的邮件offer,感谢!虽然我投的是机器学习,但是后面把我调到 Software Engineer~

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/174277.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午11:45
下一篇 2026年3月26日 下午11:46


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号