71 Simplify Path (簡化路徑)

2021-08-10 09:37:55 字數 855 閱讀 5855

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 相對路徑...