given an absolute path for a file (unix-style), simplify it.
for example,
path = 「/home/」, => 「/home」
path = 「/a/./b/../../c/」, => 「/c」
這道題讓簡化給定的路徑,光根據題目中給的那乙個例子還真不太好總結出規律,應該再加上兩個例子 path = 「/a/./b/../c/」, => 「/a/c」和path = 「/a/./b/c/」, => 「/a/b/c」, 這樣我們就可以知道中間是」.」的情況直接去掉,是」..」時刪掉它上面挨著的乙個路徑,而下面的邊界條件給的一些情況中可以得知,如果是空的話返回」/」,如果有多個」/」只保留乙個。那麼我們可以把路徑看做是由乙個或多個」/」分割開的眾多子字串,把它們分別提取出來一一處理即可,**如下:
class solution
else
if(s != ".")
}if(v.empty())
return
"/";
string res;
for(int i = 0; i < v.size(); ++i)
return res;
}};
c++中也有專門處理字串的機制,我們可以使用stringstream來分隔字串,然後對每一段分別處理,思路和上面的方法相似,參見**如下:
class solution
for (string s : v) res += "/" + s;
return res.empty() ? "/" : res;
}};
71 簡化路徑
題目 以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。在 unix 風格的檔案系統中,乙個點 表示當前目錄本身 此外,兩個點 表示將目錄切換到上一級 指向父目錄 兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱 linux unix中的絕對路徑 vs 相對...
71 簡化路徑
以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。在 unix 風格的檔案系統中,乙個點 表示當前目錄本身 此外,兩個點 表示將目錄切換到上一級 指向父目錄 兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱 linux unix中的絕對路徑 vs 相對路徑 ...
71 簡化路徑
參考文獻 以unix風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。在unix風格的檔案系統中,乙個點 表示當前目錄本身 此外,兩個點 表示將目錄切換到上一級 指向父目錄 兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱 linux unix中的絕對路徑 vs 相對路徑...