欢迎来到天天文库
浏览记录
ID:18843449
大小:48.50 KB
页数:4页
时间:2018-09-25
《去哪儿网2014笔试算法题汇总》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、去哪儿网2014笔试算法题汇总1.写一个函数,转换相对路径为绝对路径,比如:/home/abs/../temp/new/../,输出路径为:/home/temp。参考代码:1.//写一个函数,转换相对路径为绝对路径,比如:/home/abs/../temp/new/../,输出路径为:/home/temp。 2.int RP2AP(const char* pInStr, char* pOutStr) 3.{ 4. if (pInStr==NULL
2、
3、 pOutStr==NULL) retu
4、rn 0; 5. 6. string str = pInStr; 7. string strTemp; 8. vector vec_str; 9. string strOut=""; 10. 11. int nPos1; 12. int nPos2; 13. 14. nPos1 = str.find("/", 0); 15. if (nPos1<0) 16. { 17. return -1;
5、18. } 19. 20. while(1) 21. { 22. nPos2 = str.find("/", nPos1+1); 23. if (nPos2>nPos1) 24. { 25. strTemp = str.substr(nPos1, nPos2-nPos1); 26. //如果不是/..,就放入vector里 27. if (strTemp!="/
6、..") 1. vec_str.push_back(strTemp); 2. else//弹出上一个 3. { 4. vec_str.reserve(vec_str.size()); 5. vec_str.pop_back(); 6. vec_str.reserve(vec_str.size()); 7.
7、} 8. nPos1 = nPos2; 9. } 10. else 11. { 12. break; 13. } 14. } 15. 16. //循环赋值累加 17. for (int i=0; i8、2. //这里用strOut.c_str(),要安全一些,有的环境不这样写编译都不过。 23. memcpy(pOutStr, strOut.c_str(), strOut.size()); 24. 25. return 1; 26.} 27. 28.int main() 29.{ 30. int n = 10; 31. //char a[] = "/home/abs/../temp/new/../"; 32. cha9、r a[] = "/home/abs/temp/new/../"; 33. 34. char b[256]; 35. 1. memset(b, 0, 256); 2. int nRet = RP2AP(a, b); 3. 4. if (nRet ==1 ) 5. cout << b << endl; 6. 7. system("pause"); 8. return 0; 9.} //写一个函数,转换相10、对路径为绝对路径,比如:/home/abs/../temp/new/../,输出路径为:/home/temp。intRP2AP(constchar*pInStr,char*pOutStr){if(pInStr==NULL11、12、pOutStr==NULL)return0;stringstr=pInStr;stringstrTemp;vectorvec_str;stringstrOut="";intnPos1;intnPos2;n
8、2. //这里用strOut.c_str(),要安全一些,有的环境不这样写编译都不过。 23. memcpy(pOutStr, strOut.c_str(), strOut.size()); 24. 25. return 1; 26.} 27. 28.int main() 29.{ 30. int n = 10; 31. //char a[] = "/home/abs/../temp/new/../"; 32. cha
9、r a[] = "/home/abs/temp/new/../"; 33. 34. char b[256]; 35. 1. memset(b, 0, 256); 2. int nRet = RP2AP(a, b); 3. 4. if (nRet ==1 ) 5. cout << b << endl; 6. 7. system("pause"); 8. return 0; 9.} //写一个函数,转换相
10、对路径为绝对路径,比如:/home/abs/../temp/new/../,输出路径为:/home/temp。intRP2AP(constchar*pInStr,char*pOutStr){if(pInStr==NULL
11、
12、pOutStr==NULL)return0;stringstr=pInStr;stringstrTemp;vectorvec_str;stringstrOut="";intnPos1;intnPos2;n
此文档下载收益归作者所有