思路本題就是乙個簡單的字串操作的問題,具體分為以下情況:
1././的形式代表的是當前目錄,所以之間刪除/.即可,保留最後乙個/。
2./…/的形式代表的是上一級目錄,所以需要刪除/*/…,*代表當前目錄,刪除即可回到上一級。
3.連續多個 /,直接刪除留下乙個即可。
4.最後乙個/,直接刪除。
本題有乙個點,就是用scanf輸入字串的話不會滿分,用getline就好,不知道是因為快速輸入還是空格的問題
**
#include
#include
using
namespace std;
int p;
string cur,s;
intmain()
if(s.
size()
==0)//刪除多餘的"/"
while
((idx= s.
find
("//"))
!=-1)
s.erase
(idx,cnt-1)
;}//"/*/"
while
((idx= s.
find
("/./"))
!=-1)
//"/**/"
while
((idx= s.
find
("/../"))
!=-1)
else
}//刪除末尾的"/"
if(s.
length()
>
1&& s[s.
length()
-1]==
'/')
s.erase
(s.length()
-1);
cout << s << endl;
}return0;
}
CCF路徑解析
問題描述 在作業系統中,資料通常以檔案的形式儲存在檔案系統中。檔案系統一般採用層次化的組織形式,由目錄 或者資料夾 和檔案構成,形成一棵樹的形狀。檔案有內容,用於儲存資料。目錄是容器,可包含檔案或其他目錄。同乙個目錄下的所有檔案和目錄的名字各不相同,不同目錄下可以有名字相同的檔案或目錄。為了指定檔案...
CCF 路徑解析
試題編號 201604 3 試題名稱 路徑解析 時間限制 1.0s 記憶體限制 256.0mb 問題描述 在作業系統中,資料通常以檔案的形式儲存在檔案系統中。檔案系統一般採用層次化的組織形式,由目錄 或者資料夾 和檔案構成,形成一棵樹的形狀。檔案有內容,用於儲存資料。目錄是容器,可包含檔案或其他目錄...
CCF 路徑解析題解
有一段時間沒有寫ccf題了,今天花了一點時間自己寫了道題。花點時間來寫篇題解mark一下。題目鏈結入下,相信能看到這個題解的人都應該很熟悉題目 這個題的題意大致如下 給出一些表示路徑的字串,然後需要實現按一定規則將路徑正規化。正如ccf大多數第三題的套路,按一定的規則做一些字串的處理,這題也不例外,...