題目位址簡化路徑
給定乙個文件 (unix-style) 的完全路徑,請進行路徑簡化。
例如,
path = "/home/", => "/home"
path = "/a/./b/../../c/", => "/c"
邊界情況:
你是否考慮了 路徑 ="/../"
的情況?
在這種情況下,你需返回 「/」 。
此外,路徑中也可能包含多個斜槓'/'
,如"/home//foo/"
。
在這種情況下,你可忽略多餘的斜槓,返回"/home/foo"
。
當遇到/.
的時候什麼也不做
當遇到/..
的時候把最後乙個出棧
否則則新增進棧中。最後遍歷一下,如果是空的話,記得返回/
**如下
#include
#include
#include
#include
using namespace std;
class solution
if(nextp - leftp <=1)
sub = path.
substr
(leftp, nextp - leftp);if
(sub ==
"/.."
)else
if(sub !=
"/."
) leftp = nextp;
} vector
::iterator vit = v.
begin()
;for
(;vit != v.
end();
++vit)
return res.
size()
>
0? res:
"/";}}
;int
main()
71 簡化路徑
題目 以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。在 unix 風格的檔案系統中,乙個點 表示當前目錄本身 此外,兩個點 表示將目錄切換到上一級 指向父目錄 兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱 linux unix中的絕對路徑 vs 相對...
71 簡化路徑
以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。在 unix 風格的檔案系統中,乙個點 表示當前目錄本身 此外,兩個點 表示將目錄切換到上一級 指向父目錄 兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱 linux unix中的絕對路徑 vs 相對路徑 ...
71 簡化路徑
參考文獻 以unix風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。在unix風格的檔案系統中,乙個點 表示當前目錄本身 此外,兩個點 表示將目錄切換到上一級 指向父目錄 兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱 linux unix中的絕對路徑 vs 相對路徑...