回复: 29
跳转到指定楼层
上一主题 下一主题
收起左侧

新鲜微软苏州E+D Software Engineer 暑期实习详细面经

全局:

2019(7-9月) 码农类General 本科 实习@微软 - 网上海投 - Onsite  | Pass | 应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看附件。没有帐号?注册账号

x
国内大三EE专业找实习中,3月21日在微软官网上海投的苏州E+D暑期实习,之前已经找学长内推了微软上海的AI+Cloud组,但是可能因为项目不匹配所以没过简历关,最后被微软苏州捞起来了。
. ----
一开始先要做一个在线笔试,3道算法题,难度都挺大的,感觉应该是LC Hard难度。我做了其中2道,但都没有100%过。最后还是很幸运地收到了现场面试邀请。
4.19 现场一面
面试官直接看简历,说了句本科生有这么多项目挺不容易的(其实都是udemy上抄的。。惭愧惭愧_(:з)∠)_)看完简历之后没有问项目,直接开始做题

1. 给定一个数组,其中的元素先递减后递增,要求找出最小的那个元素的下标.--
. Χ
    一开始先和面试官沟通,确认各种情况,比如输入数组是否可能为null、长度是否可能为空,是否可能只存在递增的部分或者只存在递减的部分,是否存在重复等等
    各种边界情况确认完之后开始写代码,思路很简单,先判断输入数组是否属于上面提到的各种特殊情况,如果属于,就直接返回相应的下标。如果不属于,就用二分查找来看arr[mid]是否同时小于它的左边元素和右边元素,如果小于,那么mid就是要求的下标;如果不小于,根据arr[mid]比哪边更小来二分地缩小搜索范围。
    代码写完之后面试官让写一些测试用例,随便写了两个需要用二分来查找的case一步步按前面的代码的思路做,都成功找到了,这题就结束了。自我感觉这一题做得还不错,应该是达到了面试官的预期。

2. 输入一个char[] str,要求把str中所有的"ab"都替换成"c",把所有单个的"b"都替换成"ef"。要求in-place,并且保证str中"ab"的个数 > "b"的个数(也就是str的长度足够放下替换后的结果)
这道题我没有在lc上做过类似的,一头雾水完全不知道该怎么下手,大概卡了有快10分钟了面试官看我还毫无头绪,就问我哪里不太明白,然后提示我可以先把所有的"ab"换成"c"而暂时不考虑单个的"b",但我真的太菜了,还是不知道该怎么写。。最后面试官就让我先把"ab"替换为"c"的代码写出来,写完之后让我自己考虑怎么解决单独的"b",我一开始想出的方法是从str的尾部开始插入,因为之前把"ab"替换成了"c",所以现在str中的空间一定已经足够。但是这个方法有一个问题就是最终得到的结果会堆在数组的尾部而不是头部,面试官让我继续向怎么解决这个问题。最后我提出在第一个循环把"ab"替换为"c"的时候用一个变量记录单个"b"出现的次数,这样就可以知道最终全部替换好之后str的长度会是多少。从这个位置开始从后向前插入,最终就能让结果位于str的头部。
    这一题估计耗了快有40分钟吧,面试官各种提示之后才勉强写出来,感觉非常不好。做完之后时间就到1小时了,连提问的环节都没有就带去下一个面试官那里了。

这一轮因为第二题做得太差,感觉面试官的feedback肯定不是positive,当时出来之后感觉应该是没戏了。。

4.19 现场二面

面试官先让我做个自我介绍,介绍完后他看了一遍简历,看到我大多数项目都是java,就问了几个简单的java相关的问题

1. 有没有用过synchronized
     在自己的项目里没用过,但是有了解
2. 一个类中有3个方法a、b、c,都用synchronized修饰。问两个线程能不能同时访问这些方法
    先确认这三个方法不是static,然后说如果访问的是同一个对象,那么就不能并行,否则可以。 -baidu 1point3acres
3. volatile作用是什么,为什么有了synchronized还需要volatile
    两个基本作用:1. 保证可见性 2. 禁止指令重排序优化。再展开扯一些blabla
从面试官的反应来看这几个回答还是挺让他满意的。然后开始做题

1. 给一个字符串,是一个普通的英语句子,要求把里面所有单词的出现顺序反序,但是单词本身不反序,例如"This is a test" -> "test a is This"
    同样先确认各种特殊情况,例如有没有特殊字符,输入是不是保证合法等等
    我给出的第一个方法是直接用split函数,根据空格来split,放到一个数组中,然后逆序把数组中的元素放到结果中
    follow up 1: 如果单词之间的空格大于1个怎么办。回答说根据两个单词之间空字符串的数量来判断出有几个空格,例如"this  is",this和is之间有2个空格,那么split之后,数组中"this"和"is"之间会出现一个空字符串"",连续空字符串的个数为n,就说明空格个数为n + 1。
    follow up 2: 如果句子有前导空格和后继的空格怎么办。我说用一个boolean记录当前是不是前导空格。
    follow up 3: 不用split解决这个问题。我说用字符串cur记录当前的单词或连续空格,再用一个boolean记录当前是不是空格,每次从单词变成空格或者从空格变成单词的时候,就把cur添加到栈里,并把那个boolean反一下。遍历完成后连续pop这个栈,把栈顶元素加到结果字符串的末尾,直到栈变成空。
    follow up 4: 直接把整个输入字符串反向,然后对里面的每一个单词再做一次反向。
     这一题自我感觉良好

2. 实现一个数据结构,判断某个IP是否在1秒内请求了>=100次,用来在服务器上防止拒绝服务攻击。

    我稍微想了一下,给出了一个HashMap的解法, String是IP,Queue是来自这个IP的请求。每次有IP进来的时候查map,如果查到是null,那么是新的IP,存到map中;如果不是null,先从queue的头部把所有与当前时间相差超过1秒的全部出队,然后判断剩余的queue.size()是否>=100。这个想法应该已经比较接近面试官期望的答案了,他提示我用循环数组,只需要长度为100,后来的请求覆盖掉之前的请求,然后判断最新的一个请求和队列中最早的请求时间差是否>=1。 .--
     这一题感觉回答得中规中矩。。没有大的亮点,但也没有像一面第二题那样爆炸。 ..

二面自我感觉应该是positive的feedback吧。。大概。。. Χ


2轮一个小时的面试,从3点半面到5点半,面完回家。在车上刷邮箱发现5点48分hr就发了邮件约线上终面,约在4.23周二下午。这两轮能过真的是非常幸运。。如果面试官考我简历问题的话我基本就凉了_(:з)∠)_. Χ
. check 1point3acres for more.
最后想问问地理有没有小伙伴已经参加过线上的最终面试的?主要是问些什么内容?技术面考算法还是说聊聊天为主呀

评分

参与人数 12大米 +61 收起 理由
AliceLin2019 + 2 给你点个赞!
waltersunyibo + 1 赞一个!
酒窝不在四白穴 + 2 很有用的信息!
245484867 + 1 很有用的信息!
xiehang019 + 3 很有用的信息!

查看全部评分


上一篇:苏州微软电面挂经
下一篇:头条后端凉经
推荐
 楼主| chelly_EGOIST 2019-4-28 16:19:29 | 只看该作者
全局:
更新:刚刚收到了微软hr发的口头offer,真的是很幸运。实习终于有着落了~
回复

使用道具 举报

推荐
 楼主| chelly_EGOIST 2019-4-23 16:20:29 | 只看该作者
全局:
刚刚面完第三轮线上终面,趁热乎把面经发上来
面试官还没到office的时候就先进了会议室,给了我一道题让我先想着:给定一个函数rand100(),它可以随机返回1 - 100的一个整数,要求用这个函数实现rand10000()
实现方法是100 * rand100() - rand100() + 1
follow up 1: 用rand100()实现rand500(). check 1point3acres for more.
实现方法:5 * rand100() - ((rand100() % 5)
follow up 2: 用rand100()实现rand150()
. Χ实现方法:3 * (rand100() % 50 + 1) - (rand99() % 3)
其中rand99()生成1 - 99的随机数,方法是如果rand100生成了100,那就再rand一次,直到不是100为止. Χ
这个follow up没有办法直接通过rand100来实现,因为rand100() % 3生成的0 1 2并不是均匀分布的,实际上rand150本来就没有办法通过rand100在确定时间内生成,只能用rand99来辅助. 1point3acres
follow up 4: 给出结论:如果x和y可以用rand100在确定时间内生成,那么给定一个数,问能不能用rand100在确定时间内生成
实现方法:动态规划. Waral dи,

第二题:给定一个函数boolean isTriangle(int a, int b, int c)用于判断三个数能否形成三角形,要求实现这个函数
先判断有没有小于等于0的,如果有直接返回false,如果没有,用一个长度为3的数组nums存放a b c,然后从小到大sort,因为只有3个数所以sort很快。sort完以后判断nums[0] 是否大于nums[2] - num[1]。不能直接判断nums[0] + num[1]是否大于nums[2]因为有可能溢出.--

第二题做完之后面试官稍微问了问简历里的东西都是自己学的还是上课教的,我说是自己学的。还问了平时通过什么来学习,我说各种官方文档、教程还有github,没有追问-baidu 1point3acres

最后问面试官大概多久出结果,他说应该很快,我给他的印象还挺好的。不知道是忽悠还是什么。。总之软家的实习面试就到这里啦,希望可以拿到offer吧
回复

使用道具 举报

推荐
sekiro 2019-4-23 11:42:52 | 只看该作者
全局:
最终面如果前边技术答得好就不会再问coding了
回复

使用道具 举报

🔗
kenina 2019-4-22 16:24:17 | 只看该作者
全局:
我的三面就聊了十几分钟人生,然后做了个剑指offer的原题...45分钟就结束了。。我问过师兄,也有可能会问你做的方向,对这个方向的看法什么的。

评分

参与人数 1大米 +2 收起 理由
chelly_EGOIST + 2 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
 楼主| chelly_EGOIST 2019-4-22 16:40:04 | 只看该作者
全局:
kenina 发表于 2019-4-22 16:24
我的三面就聊了十几分钟人生,然后做了个剑指offer的原题...45分钟就结束了。。我问过师兄,也有可能会问你 ...

好的!谢谢你!~请问终面的结果也是在面完之后很快就有邮件通知嘛?
回复

使用道具 举报

🔗
kenina 2019-4-22 18:24:05 | 只看该作者
全局:
chelly_EGOIST 发表于 2019-4-22 16:40
好的!谢谢你!~请问终面的结果也是在面完之后很快就有邮件通知嘛?

有些快有些慢,我的流程走的很快,当天知道结果,我也听到同学几天后有结果
回复

使用道具 举报

🔗
 楼主| chelly_EGOIST 2019-4-22 18:26:14 | 只看该作者
全局:
kenina 发表于 2019-4-22 18:24
有些快有些慢,我的流程走的很快,当天知道结果,我也听到同学几天后有结果

噢好~谢谢!!
回复

使用道具 举报

🔗
junyi2016 2019-4-23 01:48:05 | 只看该作者
全局:
去年D+E实习生来说,去年我面的是北京的D+E,但是我们team有苏州的branch. 最后一面1题或者就纯聊天,类似于team match, manager和你说一下组里准备要做什么,然后问之前的项目这样。

评分

参与人数 1大米 +1 收起 理由
chelly_EGOIST + 1 很有用的信息!

查看全部评分

回复

使用道具 举报

🔗
gamesover 2019-4-23 03:19:37 | 只看该作者
全局:
一面的第二个题,可不可以后向前遍历?
回复

使用道具 举报

🔗
 楼主| chelly_EGOIST 2019-4-23 07:53:48 | 只看该作者
全局:
junyi2016 发表于 2019-4-23 01:48
去年D+E实习生来说,去年我面的是北京的D+E,但是我们team有苏州的branch. 最后一面1题或者就纯聊天,类似 ...
. check 1point3acres for more.
好的谢谢!那看来终面可能不太会刷人。。不过我的项目经历其实很弱_(:з)∠)_ 感谢提供信息~
回复

使用道具 举报

🔗
 楼主| chelly_EGOIST 2019-4-23 07:55:19 | 只看该作者
全局:
gamesover 发表于 2019-4-23 03:19.1point3acres
一面的第二个题,可不可以后向前遍历?

第一遍从前向后遍历,把ab替换成c的同时记录单个b的个数,这样就可以得到最终全部替换完了之后的长度。从这个长度开始第二遍反向遍历从后向前插入。第一遍从后向前应该不太合适,因为数组末尾可能有空
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表