暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
去哪儿网校园招聘笔试试题-算法题汇总.doc
248
5页
0次
2021-02-22
40墨值下载
去哪儿网
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 || pOutStr==NULL) return 0;
5.
6.
string str = pInStr;
7.
string strTemp;
8.
vector<string> 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;
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!="/..")
28.
vec_str.push_back(strTemp);
29.
else//
弹出上一个
30.
{
31.
vec_str.reserve(vec_str.size());
32.
vec_str.pop_back();
33.
vec_str.reserve(vec_str.size());
34.
}
35.
nPos1 = nPos2;
36.
}
37.
else
38.
{
39.
break;
40.
}
41.
}
42.
43.
//
循环赋值累加
44.
for (int i=0; i<vec_str.size(); i++)
45.
{
46.
strOut +=vec_str[i];
47.
}
48.
49.
//
这里用
strOut.c_str()
,要安全一些,有的环境不这样写编译都不过。
50.
memcpy(pOutStr, strOut.c_str(), strOut.size());
51.
52.
return 1;
53. }
54.
55. int main()
56. {
57.
int n = 10;
58.
//char a[] = "/home/abs/../temp/new/../";
59.
char a[] = "/home/abs/temp/new/../";
60.
61.
char b[256];
62.
63.
memset(b, 0, 256);
64.
int nRet = RP2AP(a, b);
65.
66.
if (nRet ==1 )
67.
cout << b << endl;
68.
69.
system("pause");
70.
return 0;
71. } //
写一个函数,转换相对路径为绝对路径,比如:
/home/abs/../temp/new/../,
输出路径
为:
/home/temp
int RP2AP(const char* pInStr, char* pOutStr)
{
if (pInStr==NULL || pOutStr==NULL) return 0;
string str = pInStr;
of 5
40墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜