您的位置:首页 > 其它

71. Simplify Path

2016-06-03 17:04 225 查看
Given an absolute path for a file (Unix-style), simplify it.

For example,

path = “/home/”, => “/home”

path = “/a/./b/../../c/”, => “/c”

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”.

思路:先把
String
/
分割成不同的子串,然后对子串内容判断。

代码:

public class Solution {
public String simplifyPath(String path) {

Deque<String> pathStack =new LinkedList<String>();
String[] strs = path.split("/");

for(int i=0; i<strs.length;++i)
{
if(strs[i].equals(".") || strs[i].length()==0)
{
continue;
}
else if(strs[i].equals(".."))
{
if(!pathStack.isEmpty())
{
pathStack.removeFirst();
}
}
else{
pathStack.addFirst(strs[i]);
}
}
StringBuilder  result= new StringBuilder();
Iterator<String> iter = pathStack.iterator();
while(iter.hasNext())
{
String c= iter.next();
result.insert(0, c);
result.insert(0,"/");
}

if(result.length()==0) result.insert(0,"/");
return result.toString();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: