70分:沒有注意到輸入空字串;
80分:相對路徑和絕對路徑的區別不是第乙個字元是否為』.』,而是是否為』/』
這裡**有點冗長,需要精簡一下。
還可以使用stringstream來解題,非常方便。**如下:
//使用sstream
#include
#include
#include
using
namespace std;
stack sta,stmp;
intmain()
for(
int i=
0;isize()
;i++)if
(s[i]
=='/'
)s[i]
=' '
;//stringstream開始了
stringstream sstream
(s);
//將s放進string流中
string tmp;
while
(sstream>>tmp)
//將字串讀入到tmp中
sta.
push
(tmp);}
//輸出,用vector更好一點
if(sta.
empty()
)while
(!sta.
empty()
)while
(!stmp.
empty()
) cout<
}return0;
}
//麻煩一點的
#include
#include
#include
#include
#include
using
namespace std;
stack st;
stack stt;
void
cpyst()
while
(!tmp.
empty()
)}void
outp
(stack s1)
while
(!sta.
empty()
)} cout<
}int
main()
if(now[i]
=='.'
&&now[i+1]
=='.'
&&i+
1==sze-
1||i+
3<=sze&&now[i]
=='.'
&&now[i+1]
=='.'
&&now[i+2]
=='/')if
(now[i]
=='.'
&&i==sze-
1||i+
2<=sze&&now[i]
=='.'
&&now[i+1]
=='/'
) string str;
int j;
//是檔案名字,因為檔名中可能含有'.',所以這個if不能和上面的if調換位置
for(j=i;j
!='/'
;j++
) st.
push
(str)
; i=j;
}getchar()
;//正規化
string p;
while
(n--
) sze=p.
size()
;if(p[0]!=
'/')
//需要用到當前目錄
if(p[i]
=='.'
&&p[i+1]
=='.'
&&i==sze-
2||i+
3<=sze&&p[i]
=='.'
&&p[i+1]
=='.'
&&p[i+2]
=='/')if
(p[i]
=='.'
&&i==sze-
1||i+
2<=sze&&p[i]
=='.'
&&p[i+1]
=='/'
) string str;
int j;
//是檔案名字,因為檔名中可能含有'.',所以這個if不能和上面的if調換位置
for(j=i;j
!='/'
;j++
) stt.
push
(str)
; i=j;
}outp
(stt);}
else
//不需要用到本機目錄
if(p[i]
=='.'
&&p[i+1]
=='.'
&&i+
1==sze-
1||i+
3<=sze&&p[i]
=='.'
&&p[i+1]
=='.'
&&p[i+2]
=='/')if
(p[i]
=='.'
&&i==sze-
1||i+
2<=sze&&p[i]
=='.'
&&p[i+1]
=='/'
) string str;
int j;
//是檔案名字,因為檔名中可能含有'.',所以這個if不能和上面的if調換位置
for(j=i;j
!='/'
;j++
) t.
push
(str)
; i=j;
}//輸出
outp
(t);}}
return0;
}
CCF201604 3路徑解析
本題會給出一些路徑,要求對於每個路徑,給出正規化以後的形式。乙個路徑經過正規化操作後,其指定的檔案不變,但是會變成乙個不包含 和 的絕對路徑,且不包含連續多個 符號。如果乙個路徑以 結尾,那麼它代表的一定是乙個目錄,正規化操作要去掉結尾的 若這個路徑代表根目錄,則正規化操作的結果是 若路徑為空字串,...
CCF201604 3路徑解析
問題描述 在作業系統中,資料通常以檔案的形式儲存在檔案系統中。檔案系統一般採用層次化的組織形式,由目錄 或者資料夾 和檔案構成,形成一棵樹的形狀。檔案有內容,用於儲存資料。目錄是容器,可包含檔案或其他目錄。同乙個目錄下的所有檔案和目錄的名字各不相同,不同目錄下可以有名字相同的檔案或目錄。為了指定檔案...
CCF 201604 3 路徑解析
試題編號 201604 3 試題名稱 路徑解析 時間限制 1.0s 記憶體限制 256.0mb 問題描述 在作業系統中,資料通常以檔案的形式儲存在檔案系統中。檔案系統一般採用層次化的組織形式,由目錄 或者資料夾 和檔案構成,形成一棵樹的形狀。檔案有內容,用於儲存資料。目錄是容器,可包含檔案或其他目錄...