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

苏州微软sde实习一面

全局:

2020(4-6月) 码农类General 硕士 实习@微软中国 - 内推 - 技术电面  | Other | 应届毕业生

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

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

x
三月底内推,四月初约面试,已经约了就去面了
上来先自我介绍,让介绍了一个项目然后开始做题

第一题:
encode algo: abcde -> c, abde -> cb, ade -> cbd, ae -> cbda, e-> cbdae,相当于每次取剩余字符串的中间字符append
give encode string like cbdae , return raw data string like abcde.
给了deque的解法,问能不能不用dq,然后又换了个方法做

第二题:
compressed string, 2[abc] -> abcabc, 2[a2[b2[c]]] -> 2[a2[bcc]]-> 2[abccbcc] -> abcbccabcbcc ..
输入 2[a2[b2[c]]],输出 abcbccabcbcc,lc应该有原题

评分

参与人数 5大米 +13 收起 理由
ericlee_ + 3 很有用的信息!
Aria灬 + 1 很有用的信息!
匿名用户-L6BAO + 6
hellokk404 + 2 欢迎分享你知道的情况,会给更多积分奖励!
小君君啊啊 + 1 给你点个赞!

查看全部评分


上一篇:微软上海c+ai暑期实习一二三面面经
下一篇:阿里云面经
推荐
kuboy 2020-4-18 18:45:03 | 只看该作者
全局:
chinkaimu 发表于 2020-4-18 17:09
题目一样?求问在哪里,我感觉也刷了很多面经,但没看到一样的??

https://www.1point3acres.com/bbs/thread-615864-1-1.html. check 1point3acres for more.
类似这套,这个时间段发的几个帖子,都是这类型题目,感觉挺难。。。
回复

使用道具 举报

全局:
qiaofengmarco 发表于 2020-4-15 15:02
第一题可以直接找规律吧?
从中间开始,每次步长+1,然后换方向跳

可以的,但是需要区分原来string长度的奇偶性。
当然了,还个办法是从后往前复原,这样的话可以忽略这个问题。
回复

使用道具 举报

推荐
 楼主| Jaye003 2020-4-14 20:43:32 来自APP | 只看该作者
全局:
小君君啊啊 发表于 2020/04/14 12:29:54
记得lz有 L 家offer了啊 为啥还要面国内的~
前一段时间担心实习被取消投的国内,前几天L才确定remote,但是面试已经约了就还是去面了
回复

使用道具 举报

全局:
记得lz有 L 家offer了啊 为啥还要面国内的~
回复

使用道具 举报

🔗
connor123 2020-4-15 04:22:55 | 只看该作者
全局:
请问楼主第一题不用dq该用什么方法做呢
以及第二题该怎么做呀
回复

使用道具 举报

🔗
 楼主| Jaye003 2020-4-15 04:39:21 | 只看该作者
全局:
connor123 发表于 2020-4-15 04:22
请问楼主第一题不用dq该用什么方法做呢
以及第二题该怎么做呀
. Waral dи,
第一题可以先初始化个数组然后用index一个一个往里面填

第二题就是用递归去做,这是我当时写的代码

  1. def helper(s):. Χ
  2.     if '[' not in s:
  3.         return s
  4.     lidx = s.find('[')
  5.     ridx = -1. .и
  6.     l = 0
  7.     for i in range(lidx, len(s)):.
  8.         if s[i] == '[':
  9.             l += 1
  10.         elif s[i] == ']':
  11.             l -= 1
  12.         if l == 0:
  13.             ridx = i
  14.             break
  15.     nidx = lidx - 1. ----
  16.     while nidx >= 0 and s[nidx].isdigit():
  17.         nidx -= 1
  18.     number = int(s[nidx + 1 : lidx])
  19.     return s[:nidx+1] + number * helper(s[lidx+1:ridx]) + helper(s[ridx+1:])
复制代码


回复

使用道具 举报

🔗
kuboy 2020-4-15 14:25:33 | 只看该作者
全局:
第一题想到两种做法,但是都有缺点:
  1. class Solution:. 1point 3acres
  2.     # 缺点:空间复杂度较高.
  3.     def getdata(self, s):. check 1point3acres for more.
  4.         if len(s) < 2: return s. Waral dи,
  5.         def helper(x):
  6.             if not x: return
  7.             # 分割原列表,如"abcde",mid="c", x1="ab", x2="de"
  8.             x1 = x[:(len(x)-1)//2].
  9.             x2 = x[(len(x)-1)//2+1:]
  10.             mid = x[(len(x)-1)//2]
  11.             res.append(mid)
  12.             print(x1, x2, mid). 1point 3acres
  13.             helper(x1+x2)
  14.         . 1point3acres
  15.         s = list(s)
  16.         res = []. Waral dи,
  17.         helper(s)
  18.         return ''.join(res)
  19. .1point3acres
  20.     # 缺点:列表中 del 复杂度较高
  21.     def getdata2(self, s):
    .--
  22.         if len(s) < 2: return s
  23.         s = list(s)
  24.         res = []. 1point3acres.com
  25.         while s:-baidu 1point3acres
  26.             mid = (len(s)-1) // 2. 1point 3 acres
  27.             res.append(s[mid])
  28.             del s[mid]. 1point3acres
  29.         return ''.join(res)
复制代码



第二题是原题
回复

使用道具 举报

全局:
微软面试题这么友好吗?sde实习有多大的包?
回复

使用道具 举报

🔗
qiaofengmarco 2020-4-15 15:02:53 | 只看该作者
全局:
本帖最后由 qiaofengmarco 于 2020-4-15 15:04 编辑
kuboy 发表于 2020-4-15 14:25
第一题想到两种做法,但是都有缺点:[mw_shl_code=python,true]class Solution:. 1point3acres.com
    # 缺点:空间复杂度较 ...

第一题可以直接找规律吧?
从中间开始,每次步长+1,然后换方向跳
.1point3acres
回复

使用道具 举报

🔗
qiaofengmarco 2020-4-15 15:39:41 | 只看该作者
全局:
村里的一哥 发表于 2020-4-15 15:25
可以的,但是需要区分原来string长度的奇偶性。
当然了,还个办法是从后往前复原,这样的话可以忽略这个 ...

感谢!你这个方法更好一点
回复

使用道具 举报

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

本版积分规则

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