您的位置:首页 > 职场人生

噗,一次尴尬的面试经历

2016-09-01 23:00 381 查看
算起来辞职有一个月了,自宅“葛优躺”10天,火车上干坐2天,祖屋接受来自お母さんの 教育7天,北京探望大学学友2天,正式投入找工作大概也就10天,之间还要扣除各路同学各色问候(线上炉石线下隔壁屋)。过了一遍TCP,过了一遍C++多态&继承&blabla,过了一遍redis,过了一遍mysql,抽了几段空子刷了一些题,自知荒芜了大半个月的岁月(还没算上个月MHOL刷怪),岗位都是轻轻的收藏了,寻思着先隔岸观火,:)。

今天面试前因后果是这样的:hr搜索到了我的简历->简单询问->诶,可以一试->电话面试->然后就是今天的face 2 face。昨天电面之后说安排今天面试,我不假思索就应之,想着应该不会或许死的很尴尬。噗,往往现实会让你死的很丰满。

面1:输出0-999999的一个数字比如123456的英文描述

一直在纠结构造一个完美的字段映射,并且还把英文搞错了,million被我以为是“万”的单位……捣鼓了半天,卒。然后是问了一些简单的基础题目,过程险象环生,发现敲代码的手怎么也不会写字了,一要手写代码或者数据,脑子就空白了,构造string类、operate new这些都回答的磕磕绊绊,甚至不断怀疑自己的回答……

面2:项目相关

换了个面试官,问了一些项目问题,自诩对项目还算比较了解,发现被完全喀擦了,介绍项目中的东西发现说不出什么……脑子持续黑白了开始,后面几个对项目的改进也是完全懵了……情况有点尴尬,面试官出了个 单链表排序的题 想缓解一下气氛,- -。然而,对于此时有点崩的我,我大眼瞪小眼了半天题目,尴尬的缴械投降……

面3:

问了一些离职情况,专业情况,此时已经满脸黑线的我,回答的也都是蛮差,然后,又是一个题,英文单词倒序输出,(Oh my god,让我一次崩个够),一崩到底。(回去的地铁上发现只需要先倒序所有然后按空格倒序各个单词……)

铁定是没戏。

也算给自己敲了个警钟。顺带做个记录。

static关键字、stl、operate new和throw(这题现在回想的还不是很清楚)、分词、分布式的理解、块存储……

把三道算法题回来写了一遍,写的不是很完善,= =,算给自己一个交代。

0-999999输出英文描述

#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
const string ones[15] = {" ","one","two","three","four","five","six","seven","eitht","nine"};
const string tens[15] = {"ten","eleven","twelve","thirteen","fourteen","fifteen","sixteen","seventeen","eithteen","nineteen"};
const string tentys[15] = {" "," ","twenty","thirty","forty","fifty","sixty","seventy","eighty","nighty"};
const string bases[10] = {"hundred","thousand"};

int phraseInt(int num,int numMatrix[6])
{
for(int i=0;i<6;i++)
{
numMatrix[i] = 0;
}

int size = 1;
while(true)
{
numMatrix[6-size] = num%10;
if (0 == num/10)
break;
num = num/10;
++size;
}
return size;
}

void PhraseTri(int a[],int pos,string &desc)
{
if (0 != a[pos])
{
desc.append(ones[a[pos]]+" hundred");
if (a[pos+1] == 0 && a[pos+2] == 0)
return true;
desc.append(" and ");

}

if (a[pos+1] == 1)
desc.append(tens[a[pos+2]]);
else
desc.append(tentys[a[pos+1]]+"-"+ones[a[pos+2]]);
cout<<desc<<endl;
return true;

}
int main(int argc, char const *argv[])
{
int a[6];
int size = phraseInt(999999,a);
cout<<"size is :"<<size<<endl;
for(int i=0;i<6;i++)
{
cout<<a[i];
}
cout<<endl;
int i = 0;
string desc = "";
PhraseTri(a,0,desc);
desc.append(" thousand ,");
PhraseTri(a,3,desc);
cout<<"final desc is :"<<desc<<endl;
return 0;
}


英文单词倒序输出

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
void reverse(char *p,int n)
{
int i = 1;
char tmp;
while( i <= n/2)
{
cout<<"n:"<<n<<" "<<"i:"<<i<<" "<<"data:"<<p[i-1]<<" and "<<p[n-i]<<endl;
tmp = p[i-1];
p[i-1] = p[n-i];
p[n-i] = tmp;
++i;
}
}
int main(int argc, char const *argv[])
{
string str = "I am a student in china ";
char * pStr = (char*)malloc(sizeof(char)*str.size());
strncpy(pStr,(char*)str.c_str(),str.size());
reverse(pStr,strlen(pStr));

cout<<pStr<<endl;
char * pTmpStr = pStr;
char * front = pStr;
int k = 0;
while('\0' != *pTmpStr)
{
cout<<"k value is "<<k++<<endl;
if (' ' == *pTmpStr)
{
reverse(front,pTmpStr-front);
cout<<(*front)<<endl;
front = pTmpStr+1;
cout<<(*(pTmpStr+1))<<endl;
}
++pTmpStr;

}
cout<<"final str is :"<<endl<<pStr<<endl;
return 0;
}


单链表排序(冒泡)

#include <stdio.h>
#include <iostream>
#include <stdlib.h>
using namespace std;
typedef struct LinkNode
{
int data;
LinkNode * next;
}Node;

Node *head = NULL;

void createNode()
{
head=(Node*)malloc(sizeof(Node));
if (NULL == head)
{
cout<<"[ERROR] malloc memory fail !";
return;
}
head->data = -1;
head->next = NULL;
}

void Insert(Node *node)
{
if (NULL == head)
{
cout<<"[ERROR] head is null !";
return;
}
node->next = head->next;
head->next = node;
}

void show(Node *node)
{
while(NULL != node)
{
cout<<node->data<<" ";
node=node->next;
}
cout<<endl;
}
int k = 0;
void BubbleSort()
{
Node *pNodeTem = head->next;
Node *pNodePre = head;
Node *pLast = NULL;
Node *PLasPre = NULL;
while (1)
{
while ( NULL != pNodeTem->next)
{
if (pNodeTem->data > pNodeTem->next->data)
{
Node *NodeNext = pNodeTem->next;
pNodeTem->next = NodeNext->next;
NodeNext->next = pNodeTem;
pNodePre->next = NodeNext;
pNodePre = pNodePre->next;
pLast = pNodeTem;

}

else
{
pNodeTem = pNodeTem->next;
pNodePre = pNodePre->next;
}
}

pNodeTem = head->next;
pNodePre = head;

if (pLast == PLasPre)
break;

else
PLasPre = pLast;
cout<<"At "<<k++<<" times"<<endl;
show(head->next);
}
}

int main(int argc, char const *argv[])
{
/* code */
createNode();
for(int i = 0;i<100;i++)
{
Node *node = (Node*)malloc(sizeof(Node));
node->data = rand()%100;
Insert(node);
}
show(head->next);
BubbleSort();
return 0;
}


ps.英语需加把劲,写代码大部分时间纠结方法变量取什么英文名好……

以上
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  面试