您的位置:首页 > 其它

LeetCode 71 Simplify Path

2014-11-13 16:10 399 查看
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"
.

思路:简单题,Unix文件的根目录为"/","."表示当前目录,".."表示上级目录
public class Solution {
    public String simplifyPath(String path) {
    	String []strs=path.split("/");
    	StringBuilder sb=new StringBuilder("");
    	LinkedList<String> ll=new LinkedList<String>();
    	for(String str:strs){
    		if(str.equals(".")) continue;
    		else if(str.equals("..")&&!ll.isEmpty()) {
    				ll.pollLast();
    		}else if(str.length()>0&&!str.equals("..")){
    			ll.add(str);
    		}
    	}
    	if(ll.isEmpty())return "/";
    	for(String str:ll){
    		sb.append("/");
    		sb.append(str);
    	}
    	return sb.toString();
    }
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: