接到华为上机考试的通知,赶紧去看了往届的题目,觉得题目不是很难,都很基本,基本到好像都没有什么算法,coding基础弱弱的自己,都能折腾出来~
这次机试的内容分为综合评估,也就是性格测试一类的,104题,25分钟(好像时间不只给这么多,很充裕)。
综合评估完,休息下就是上机编程题目,我答的是C/C++,VC6.0平台编译。共两道题
题目是
1. 输入pInputStr = “ abc def h a d”这样的带有空格的字符串,然后将空白处换做逗号输出。
输出 pOutputStr = "abc,def,h,a,d,"为对应的结果的字符串。
题目给出了相关的main(),及函数入口,和函数体。补充好,运行成功就可以了。
总结下:这道题不是很难啦,但是题目输出的字符串的最后一个字符是逗号,折腾了半天。还是平时编码不够熟练,这小破题提交完用了我1个小时。。汗。。然后自己狠狠地鄙视了一下自己。。。
2. 链表的逆序输出
输入1->2->3->4->5
输出 5->4->3->2->1
给了相应的结构体。我认为算法清楚了就基本没啥大问题了。不像第一个需要仔细一些,看看题目的要求。
总结下:实际代码中的函数体形参是ListNode **head.
看到**head这种参数,我就有点发虚。。怕搞不清楚,还好由编译器自己可以查看下推断出到底是地址还是值。主要的方法是我用了三个指针,然后分别指向连续的3个结点。然后做这样的操作:
temp2->next = temp1;
temp1 = temp2;
temp2 = temp3;
temp3= temp3->next;
具体的边界情况要考虑下,比如第一个结点的next要置Null,不然输出的结果最后是个乱的数字。
嗯,题目不难,但是还是用了将近2个小时的时间才弄完,还好华为这种机试不看时间的,不过我觉得我代码的优化程度估计也是最低的。。
这两天编了些小题目觉得蛮有意思的,也能够对那些做ACM的同学的热情有所了解了~~
编程能力太弱了,要继续努力。
下午cj接到了大众点评的面试通知,估计我也被鄙视了,算了,还是要继续努力,已经有所进步了,要更加加油~~