Leetcode 71 Simplify Path
來源:程序員人生 發布時間:2016-09-29 08:53:47 閱讀次數:2741次
Given an absolute path for a file (Unix-style), simplify it.
For example,
path = "/home/"
, => "/home"
path = "/a/./b/../../c/"
, => "/c"
路徑化簡,.表示當前目錄..表示上1級目錄。
摹擬1下,也能夠用棧做。注意邊界情況
Corner Cases:
- Did you consider the case where path =
"/../"
?
In this case, you should return "/"
. - Another corner case is the path might contain multiple slashes
'/'
together,
such as "/home//foo/"
.
In this case, you should ignore redundant slashes and return "/home/foo"
.
class Solution {
public:
string simplifyPath(string path) {
string result,temp;
vector<string> s;
path+='/';
for(int i=0;i<path.size();i++)
{
if(path[i]=='/')
{
if(temp=="" || temp==".")
{
}
else if(temp=="..")
{
if(!s.empty()) s.pop_back();
}
else
s.push_back(temp);
temp="";
}
else
temp+=path[i];
}
if(!path.empty() && s.empty()) result+='/';
for(int i=0;i<s.size();i++) result+='/'+s[i];
return result;
}
};
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈