《2014去哪儿网校园招聘笔试算法题汇总.doc》由会员分享,可在线阅读,更多相关《2014去哪儿网校园招聘笔试算法题汇总.doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2014去哪儿网校园招聘笔试算法题汇总 1.写一个函数,转换相对路径为绝对路径,比如:/home/abs/./temp/new/./,输出路径为:/home/temp。参考代码:1. /写一个函数,转换相对路径为绝对路径,比如:/home/abs/./temp/new/./,输出路径为:/home/temp。 2. intRP2AP(constchar*pInStr,char*pOutStr)3. 4. if(pInStr=NULL|pOutStr=NULL)return0;5. 6. stringstr=pInStr;7. stringstrTemp;8. vectorvec_str;9.
2、stringstrOut=;10. 11. intnPos1;12. intnPos2;13. 14. nPos1=str.find(/,0);15. if(nPos1nPos1)24. 25. strTemp=str.substr(nPos1,nPos2-nPos1);26. /如果不是/.,就放入vector里 27. if(strTemp!=/.)28. vec_str.push_back(strTemp);29. else/弹出上一个 30. 31. vec_str.reserve(vec_str.size();32. vec_str.pop_back();33. vec_str.re
3、serve(vec_str.size();34. 35. nPos1=nPos2;36. 37. else38. 39. break;40. 41. 42. 43. /循环赋值累加 44. for(inti=0;ivec_str.size();i+)45. 46. strOut+=vec_stri;47. 48. 49. /这里用strOut.c_str(),要安全一些,有的环境不这样写编译都不过。 50. memcpy(pOutStr,strOut.c_str(),strOut.size();51. 52. return1;53. 54. 55. intmain()56. 57. intn=
4、10;58. /chara=/home/abs/./temp/new/./; 59. chara=/home/abs/temp/new/./;60. 61. charb256;62. 63. memset(b,0,256);64. intnRet=RP2AP(a,b);65. 66. if(nRet=1)67. coutbendl;68. 69. system(pause);70. return0;71. /写一个函数,转换相对路径为绝对路径,比如:/home/abs/./temp/new/./,输出路径为:/home/temp。int RP2AP(const char* pInStr, ch
5、ar* pOutStr)if (pInStr=NULL | pOutStr=NULL) return 0;string str = pInStr;string strTemp;vector vec_str;string strOut=;int nPos1;int nPos2;nPos1 = str.find(/, 0);if (nPos1nPos1)strTemp = str.substr(nPos1, nPos2-nPos1);/如果不是/.,就放入vector里if (strTemp!=/.)vec_str.push_back(strTemp);else/弹出上一个vec_str.rese
6、rve(vec_str.size();vec_str.pop_back();vec_str.reserve(vec_str.size();nPos1 = nPos2;elsebreak;/循环赋值累加for (int i=0; ivec_str.size(); i+)strOut +=vec_stri;/这里用strOut.c_str(),要安全一些,有的环境不这样写编译都不过。memcpy(pOutStr, strOut.c_str(), strOut.size();return 1;int main() int n = 10; /char a = /home/abs/./temp/new/
7、./;char a = /home/abs/temp/new/./; char b256;memset(b, 0, 256);int nRet = RP2AP(a, b);if (nRet =1 )cout b endl; system(pause); return 0; 2.一个10*10的矩阵(可以理解为棋盘),随时生成一组数据填入矩阵,任何一个位置的数字除4进行计算,按余数着色,余数为0着色为red,1为blue,2为green,3为black,可以理解为生成4中颜色的棋子放入棋盘,如果存在其中同色五星连珠的情况(规则通五子棋),找出任意一组,输出5个棋子的位置下标值。3.有两个文件co
8、ntext.txt和words.conf,请尝试将他们合并成为一段文字,并打印出来。这两个文件内容如下:context.txt“并不是每个人都需要$(qunar)自己的粮食,$(flight.1)每个人都需要做自己穿的$(flight.2),我们说着别人发明的$(hotel),使用别人发明的数学.我们一直在$(tuan)别人的成果。使用人类的已有经验和知识$(travel.1)来进行,是一件$(travel.2)的事情”word.confflight=也不是:衣服qunar=种植hotel=语言tuan=使用travel=发明创造:很了不起4.一个文件里有10万个随机正整数,按照以下规则能组合
9、出一份新的数据:A如果当前数字能被3整除,那么它和文件中所有数字(包括自己)两两相加后生成一组数字替代自己的位置。B如果不能被3整除,则它只需要乘以二,生成一个数字替代自己的位置。例如:3,7,6会组合出6,10,9,14,9,13,12再如:5,12,9,6,2会组合出10,17,24,21,18,14,14,21,18,15,11,11,18,15,12,8,4写一个程序找出并打印出新数据的最小的前200个数字。请考虑优化算法复杂度。5.已知字母序列【d, g, e, c, f, b, o, a】,请实现一个函数针对输入的一组字符串 input = bed, dog, dear, eye,按照字母顺序排序并打印。本例的输出顺序为:dear, dog, eye, bed。6.有一万个北京单身男女向你提交了基本资料,包括:姓名、性别、年龄、星座,写一段程序尝试找出他们最匹配的一对。