logo资料库

2014去哪儿网校园招聘笔试算法题汇总.doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
2014
2014 去哪儿网校园招聘笔试算法题汇总 1.写一个函数,转换相对路径为绝对路径,比如:/home/abs/../temp/new/../,输出路径为: /home/temp。 参考代码: 1.//写一个函数,转换相对路径为绝对路径,比如:/home/abs/../temp/new/../,输出路径为: /home/temp。 if (pInStr==NULL || pOutStr==NULL) return 0; strTemp = str.substr(nPos1, nPos2-nPos1); //如果不是/..,就放入 vector 里 if (strTemp!="/..") vec_str.push_back(strTemp); int nPos1; int nPos2; string str = pInStr; string strTemp; vector vec_str; string strOut=""; 2.int RP2AP(const char* pInStr, char* pOutStr) 3.{ 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. nPos2 = str.find("/", nPos1+1); if (nPos2>nPos1) { nPos1 = str.find("/", 0); if (nPos1<0) { return -1; } while(1) {
} nPos1 = nPos2; } else { } break; else//弹出上一个 { vec_str.reserve(vec_str.size()); vec_str.pop_back(); vec_str.reserve(vec_str.size()); //循环赋值累加 for (int i=0; i
64. 65. 66. 67. 68. 69. 70. 71. 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. 有两个文件 context.txt 和 words.conf,请尝试将他们合并成为一段文字,并打印出来。 这两个文件内容如下: context.txt “并不是每个人都需要$(qunar)自己的粮食,$(flight.1)每个人都需要做自己穿的$(flight.2),我们说 着别人发明的$(hotel),使用别人发明的数学......我们一直在$(tuan)别人的成果。使用人类的已有 经验和知识$(travel.1)来进行,是一件$(travel.2)的事情” word.conf flight=也不是:衣服 qunar=种植 hotel=语言 tuan=使用 travel=发明创造:很了不起
4. 一个文件里有 10 万个随机正整数,按照以下规则能组合出一份新的数据: 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.有一万个北京单身男女向你提交了基本资料,包括:姓名、性别、年龄、星座,写一段程序尝试 找出他们最匹配的一对。
分享到:
收藏