这篇文章我最初写在我的CSDN博客。 https://blog.csdn.net/Xixo0628/article/details/105792506 想到牛客网帮到我很多,我也搬运过来,希望帮到大家。内容基本没有改动。 (4轮技术面+一轮HR面)现在应该就是等通知了,第一次面试,记录一下。
再次介绍自己基本背景,中科大信息安全专业,在读本科大三,gpa专业第八(8/65),没有什么相关项目经验,基本都是机器学习相关的项目。没有本科计算机比赛基础,初中时打过NOIP,没有拿奖。之前参加了阿里云的编程笔试,1h2题,0分。没有任何面试经验、实习经验。这次第一次参加春招,因为没什么经验,以为只能投一家公司,所以蠢到只投了阿里云一家公司,投递的时候离结束只有一个月了,开始笔试的时候离结束只有半个月了。
先上机考的2题,我都是0分,具体题目和解析可以参考这篇博客(不是我写的)https://blog.csdn.net/qq_33330876/article/details/105574020 我本来以为是我这场特别难,大家都0分我才能进面试。看到这篇博客,看到他的两段满分代码……我顿时就觉得希望不大了。
感觉我像是那种名校毕业刚出新手村的状态,阿里云算是HARD模式了。不过现在感觉应该不会因为HR面而挂我,祈祷能过吧。
好了,第一次写面经,不足之处希望大家指出。
一面 2h
上机的代码:
//评测题目: 定义一棵节点存储数据类型为整数的二叉树,并使用非递归算法对这个树的所有节点求和。
typedef struct BTree{
int val;
struct BTree * left, *right;
}BTree,*pBTree;
void enque(BTree *p) {
//...
}
BTree* pop() {
//...
}
int sizeOfQueue() {
//...
}
int visit(BTree *p){
if (p ->left != NULL){
enque(p -> left);
}
if (p ->right != NULL){
enque(p -> right);
}
return p->val;
}
int Sum(BTree *p){
int sum = 0;
if (p == NULL) return 0 ;
enque(p);
while (sizeOfQueue() != 0){
sum += visit(pop());
}
return sum;
}
二面 1.5h
上机的代码:
题目描述:
使用C语言,定义并实现一个函数。
函数功能:删除字符串的子串,输入源字符串和待删除的子串,返回删除后的字符串。
*/
int strlen ( char * s){
//..
}
int Findfirst(char *s1, char *s2){
int i , j , index ,index1;
int len1 = strlen(s1), len2 = strlen(s2);
for (i = 0; i < len1 - len2; i++){
index1 = i ;
for (j =0 ; j
if ( s1[index1] == s2[j]){
index1++;
continue;
} else break;
}
if ( j == len2){
index = i;
return index ;
}
}
return -1;
}
char * strdelete(char *s1, int index, int len){
for ( ;s1[ index+len] ! = '\n'; index++){
s1[index] = s1[index+ len];
}
s1[index +1] ='\n';
return s1;
}
char * strdel(char * s1,char * s2){
int len1 = strlen(s1), len2 = strlen(s2);
int index ;
if (len2 == 0 || len2 > len1 || len1 == 0) return s1;
index = Findfirst(s1, s2 );
while (index != -1 ){
s1 = strdelete(s1, index , len2);
index = Findfirst(s1,s2);
}
return s1;
}
三面
上机的代码:
//评测题目: 无
Given a string, determine if it is a palindrome(回文,如果不清楚,按字面意思脑补下),
considering only alphanumeric characters and ignoring cases.
For example,
"A man, a plan, a canal: Panama" is a palindrome.
"race a car" is not a palindrome.
Note: ====
Have you consider that the string might be empty? This is a good question to ask during an interview.
For the purpose of this problem, we define empty string as valid palindrome.
// Write your code here
int strlen(char *s){
//..
}
char * make(const char *s){
int len =strlen (s),index = 0;
char *s1;
for (int i = 0; i<len; i++){
if ( (s[i] >='a' && s[i] ='A' && s[i] <= 'Z') ){
if (s[i]>='A' && s[i] <= 'Z') {
s[i] = s[i] +'a' - 'A' ;
}
s1[index++] = s[i];
}
}
s1[index] = '\0';
return s1;
}
int Is_pal(const char *s){
char *s1;
s1 = make(s);
int len= strlen(s1);
// if (len == 0) return 1;
for (int i = 0; i < len/2; i++){
if (s1[i] == s[len -s1 -1]){
continue;
} else{
return 0;
}
}
return 1;
}
假如允许你对字符串进行如下操作,每次花费“1”的代价把任意字符挪到字符串末端
现在给定两个长度相等的字符串 S1 和 S2,问至少需要多少开销将S1变为S2
比如输入:
S1:acdk bceda
S2:ckad bcdea
output:2
void qsort( int *arr ,int start ,int end){
if (end > start){
int i = start;
int j = end;
int k = arr[start];
while (i < j){
while (i = k){
j--;
}
if (i<j){
arr[i] = arr[j];
i++;
}
while (i<j && arr[i] < k){
i++;
}
if (i<j){
arr[j] = arr[i];
j--;
}
}
arr[i] = k;
qsort(arr, start, i-1);
qsort(arr, i+1, end);
}
}
4面 20min
五面 (HR面) 20min
唠嗑
以上就是我全部的分享内容了!因为是第一次参加实习面试,信心满满地上阵(没有看过任何一篇面经),然后一面被叮嘱要多看面经。我在牛客网匆匆地看了一些面经,了解到大家的情况都比我优秀好多,感觉颇受打击。感觉我能撑到五面全部结束,确实是非常的幸运。
因为我在大家的面经中学到了不少知识,所以我也尽可能详细地分享出我自己的经历,希望可以作为后来者的一些参考。
我最后真的想吐槽一下我的母校中科大。中科大确实是一所好大学,毕竟千生一院士(平均1000个学生出1个国家级院士)。但是科大学术氛围浓厚的背后,也让我忽视了就业的基本要点,让我现在才开始起跑,感觉身边许多同学还在混沌之中,就像以前的我那样,认为GPA好就是王道,认为本科只要GPA高就业就没有问题,完全把就业和本科相互割裂。 我没有读博科研的打算,所以我现在开始找实习机会,投递简历,完全就是一张白纸的状态。若不是机缘巧合,我甚至不知道还有“实习生招聘”这种事情,所以我连面试简历都是上个月这个时候才开始准备的。可以说,我才刚刚站上起跑线。 可能因为科大,我的起跑线比一般一本院校的学生靠前一些;但也是因为科大,我的起跑线比那些注重项目、实习经验的人落后不少。
我在HR面试时候问,有没有什么事情越早开始做约越好?因为我感觉我对实习、对面试的了解太晚了,吃了好多亏。我多么希望告诉两年前的自己,要重视这些。b站、博客、牛客网上那些达人的经验,如果去搜索去寻找就唾手可得;毕业工作的学长学姐、公司工作的员工,都是非常棒的信息获取渠道。只要有心,不会困难。希望看到这篇文章的后辈,能够不要像我一般后悔。
这次面试帮到我很多,让我学会了很多。尤其是让我进一步理解了这句话:
种一棵树最好的时间是十年前,其次是现在。
若是这次阿里云实习生最终没能通过,我会更加懊悔,也会更加努力。
2020/5/7 更新:唠嗑
一度以为自己已经凉了,时隔数日,终于收到了实习意向书(offer)。0实习经验0分笔试,而且我只投了阿里云(所以算是一投就中了)。我这次能过,我觉得我还是很幸运,在下一个阶段的竞争中我会有一个相对高一些的起点。 复盘面试,自我感觉的话其实只有现场代码部分感觉比较好(自我感觉写得出错不多);问答环节我回答的bug还是蛮多的。 这次面试我已经很有收获了,我相信我能在实习期间学到更多。同时也感谢牛客网,前辈们在这儿留下的经验帮到我非常多!
全部评论
(5) 回帖