[置顶] 去哪儿网2014笔试算法题汇总
2013-10-02 11:03
330 查看
1.写一个函数,转换相对路径为绝对路径,比如:/home/abs/../temp/new/../,输出路径为:/home/temp。
参考代码:
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.有一万个北京单身男女向你提交了基本资料,包括:姓名、性别、年龄、星座,写一段程序尝试找出他们最匹配的一对。
转载请注明原创链接:http://blog.csdn.net/wujunokay/article/details/12233087
参考代码:
//写一个函数,转换相对路径为绝对路径,比如:/home/abs/../temp/new/../,输出路径为:/home/temp。 int RP2AP(const char* pInStr, char* pOutStr) { if (pInStr==NULL || pOutStr==NULL) return 0; string str = pInStr; string strTemp; vector<string> vec_str; string strOut=""; int nPos1; int nPos2; nPos1 = str.find("/", 0); if (nPos1<0) { return -1; } while(1) { nPos2 = str.find("/", nPos1+1); if (nPos2>nPos1) { strTemp = str.substr(nPos1, nPos2-nPos1); //如果不是/..,就放入vector里 if (strTemp!="/..") vec_str.push_back(strTemp); else//弹出上一个 { vec_str.reserve(vec_str.size()); vec_str.pop_back(); vec_str.reserve(vec_str.size()); } nPos1 = nPos2; } else { break; } } //循环赋值累加 for (int i=0; i<vec_str.size(); i++) { strOut +=vec_str[i]; } //这里用strOut.c_str(),要安全一些,有的环境不这样写编译都不过。 memcpy(pOutStr, strOut.c_str(), strOut.size()); return 1; } int main() { int n = 10; //char a[] = "/home/abs/../temp/new/../"; char a[] = "/home/abs/temp/new/../"; char b[256]; 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.
有两个文件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.有一万个北京单身男女向你提交了基本资料,包括:姓名、性别、年龄、星座,写一段程序尝试找出他们最匹配的一对。
转载请注明原创链接:http://blog.csdn.net/wujunokay/article/details/12233087
相关文章推荐
- [置顶] 人人网2014笔试算法题汇总
- [置顶] 暴风影音2014笔试算法题汇总
- [置顶] 阿里巴巴2014笔试算法题汇总
- [置顶] 创新工场2014笔试算法题汇总
- [置顶] 华为2014笔试算法题汇总
- [置顶] 百度2014笔试算法题汇总
- [置顶] 美团网2014笔试算法题汇总
- 阿里巴巴2014笔试算法题汇总
- 暴风影音2014笔试算法题汇总
- [置顶] 2014各大网络公司校招笔试算法题(收集并更新中)
- [置顶] 2014各大网络公司校招笔试算法题(收集并更新中)
- 华为2014笔试算法题汇总
- 人人网2014笔试算法题汇总
- 2014 --人人网笔试算法汇总
- 百度2014笔试算法题汇总
- 2014--华为笔试算法汇总
- 美团网2014笔试算法题汇总
- 创新工场2014笔试算法题汇总
- 百度2014校园招聘笔试题 ——深度学习算法研发工程师.
- [置顶] 机器学习笔试面试系列算法集锦