CSP201604 3 路徑解析

2021-10-05 03:38:44 字數 1880 閱讀 1301

題目

輸入

7/d2/d3

/d2/d4/f1

…/d4/f1

/d1/./f1

/d1///f1

/d1/

////d1/…/…/d2

輸出

/d2/d4/f1

/d2/d4/f1

/d1/f1

/d1/f1

/d1/

/d2我的解法

我是按照他的要求一步一步做的,但是按我的思路來寫只能得80分,結果是執行錯誤,不知道該怎麼修改了。

#include

#include

using

namespace std;

string now;

//當前路徑

int p;

string index;

string result[11]

;int ri;

int sizeofrow[11]

;//每行答案的長度

int sizei;

intmain()

if(ri>0)

}int flag1 =0;

int flag2 =0;

//標記 .

for(

int i=

0;isize()

;i++)if

(flag2==2)

//回退}}

flag1=flag2=0;

}else

if(index[i]

=='.'

) result[in]

[ri++

]= index[i];if

(index[i]

!='/'

) flag1++

;}

sizeofrow[sizei++

]= ri;

}for

(int i=

0;i) cout<

}return0;

}

參考了網上的思路後

#include

#include

#include

using

namespace std;

string now,s,s1;

int p;

vector vs;

intmain()

stringstream ss

(s);

while

(ss >> s1)

else

if(s1 !=

".."

) vs.

push_back

(s1);}

cout<<

'/';

for(

int i=

0;isize()

;i++

) cout<

vs.clear();}}

小結因為用了sstream,所以**非常的簡短,我只想說太妙了

(我覺得我對字串string型別,和sstream這裡非常不熟悉,甚至都不知道有sstream這個包,所以也想不到用這種這麼妙的方法,而且對string不熟悉,有很多我想到的操作無法用**實現出來)

CSP 201604 3 路徑解析

試題編號 201604 3 試題名稱 路徑解析 時間限制 1.0s 記憶體限制 256.0mb 問題描述 問題描述 在作業系統中,資料通常以檔案的形式儲存在檔案系統中。檔案系統一般採用層次化的組織形式,由目錄 或者資料夾 和檔案構成,形成一棵樹的形狀。檔案有內容,用於儲存資料。目錄是容器,可包含檔案...

CSP201604 3路徑解析

給出一系列檔案路徑,輸出正規化後的路徑。有分析可知,給出的路徑只有兩種形式,一是絕對路徑 以 開頭 二是相對路徑 以 開頭 對於相對路徑的處理,可以將它與當前目錄連在一起,變成絕對路徑後再正規化,根據分析得出將乙個路徑 絕對路徑 正規化要考慮到以下四點 路徑中是否出現 路徑中是否出現 路徑中是否出現...

CSP 201604 3路徑解析

問題描述 輸入格式 第一行包含乙個整數 p,表示需要進行正規化操作的路徑個數。第二行包含乙個字串,表示當前目錄。以下 p 行,每行包含乙個字串,表示需要進行正規化操作的路徑。輸出格式 共 p 行,每行乙個字串,表示經過正規化操作後的路徑,順序與輸入對應。樣例輸入 7 d2 d3 d2 d4 f1 d...