去哪儿网
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.
}
评论