CSP201604 3路徑解析

2021-10-04 17:48:01 字數 856 閱讀 2030

給出一系列檔案路徑,輸出正規化後的路徑。

有分析可知,給出的路徑只有兩種形式,一是絕對路徑(以『/』開頭),二是相對路徑(以『.』開頭),對於相對路徑的處理,可以將它與當前目錄連在一起,變成絕對路徑後再正規化,根據分析得出將乙個路徑(絕對路徑)正規化要考慮到以下四點:

路徑中是否出現「///」;

路徑中是否出現「/…/」;

路徑中是否出現「/./」;

路徑的最後是否為「/」;

還有一點就是題目輸入可能給乙個空的路徑,這時候輸出當前目錄即可。

#include

#include

using

namespace std;

int p,pos;

string cur;

intmain()

//去除/../

while

((pos = s.

find

("/../"))

!=-1)

} s.

erase

(pos, count);}

//去除/./

while

((pos = s.

find

("/./"))

!=-1)

//去除最後乙個/

if(s.

size()

>

1&& s[s.

size()

-1]==

'/')

s[s.

size()

-1]=

'\0'

; cout << s << endl;

}return0;

}

CSP 201604 3 路徑解析

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

CSP 201604 3路徑解析

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

csp 201604 3 路徑解析

問題描述 在作業系統中,資料通常以檔案的形式儲存在檔案系統中。檔案系統一般採用層次化的組織形式,由目錄 或者資料夾 和檔案構成,形成一棵樹的形狀。檔案有內容,用於儲存資料。目錄是容器,可包含檔案或其他目錄。同乙個目錄下的所有檔案和目錄的名字各不相同,不同目錄下可以有名字相同的檔案或目錄。為了指定檔案...