Akuna C#岗面经

几分钟前做完的,各种默泪啊,趁热发个面经了,地里好像从来就没见过他家C#岗的面经,是因为今年才有这个岗还是从来就没人投?!

于是我找了半天面经没有就直接上了,瑟瑟发抖

20分钟选择题+120分钟coding

选择题是10道基础题,但真的是,至少有一半跟testing相关!对testing真的是不太懂

coding三道:

第一道:股权竞标,每个竞标人是一个List,list的内容是[bid_id, number of share, price, time of bid], 输入是竞标人列表 List<List>
然后规则是由价格高的先分
如果一个价格有多个竞标人,那就按他们的time of bid顺序从早到晚,一人分一股,循环直到所有股分完或者所有人都分到了想要的股数
输出是是最后有哪些竞标ID没分到股

第二道 不太好描述,就是一个跑步运动员,练习折返跑,给定N个点,然后给一个他折返跑的路径,求他经过的次数最多的点里面最小的那个(起始和到达都算经过),比方说从2到4, 再到1,再到3,这个过程里面2和3经过的次数最多,而序数2比3小,所以return 2

第三道 就是string s里面找string t 没有的words, t 是s 的subsequence, 比方说s是"I like cheese", t是“like", 最后return一个list, list里按顺序是I和cheese…t和S都只有字母和空格。。。这题怎么看怎么简单,但corner case总是想不对。。。感觉哪里漏想了。。。并且我给的几个corner case,expected answer也很奇怪,感觉完全看不出题目到底怎么要求的

谢谢分享,已加分。

纯好奇,这种公司,为什么会有 C# 的需求。

一样的三道题 跪了…

testing 是跟 software testing相关的吗?

刚刚做完,一样3题,第二题有tle 6/13通过,1,3都有过,有需要的同学私信我。
还有MCQ大多是程式题,有一题testing,有一题two complement(我不会)。

希望保佑我有电面,虽然没有全过QQQQQQ

可以请问一下第三题的做法和corner case吗?

我好像就是split了然后用hashset做的。。。但后面的几个test case好像都没过。。。是需要考虑有空格的情况还是其他的呢?

答案要照顺序,例如 s = “e d c b a”,t = “d b”,答案是"a",“c”,“e”,要照顺序。
用hashset顺序会不见,我原本也是用hashset,后来发现两个index就够了。
while(indexT<tSplit.length){
if(sSplit[indexS].equals(tSplit[indexT])){
indexS++;
indexT++;
}else{
ans.add(sSplit[indexS]);
indexS++;
}
}

补充内容 (2018-9-18 05:09):
错了,答案是"e",“c”,“a”

错了答案应该是"e",“c”,“a”

顺序用set也可以的吧,我输出的应该都是用顺序的。。。
set是用来装T里的string,然后把S从头到尾按顺序扫,在set里就跳过,不在set里有扫进去。。。

对比你的做法,感觉区别在于duplicate?如果某个String在S里出现了两次,而在T里只出现了一次,那最后结果里面也得包括这个String?

那有可能耶,我没考虑到duplicate,结果蒙对了