这道题,题意真的不好懂。我看的人家的:https://blog.youkuaiyun.com/makuiyu/article/details/44497901
题目链接:Simplify Path
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".
我的代码如下:虽然时间比较浪费,但是易理解。
package test;
import java.util.ArrayList;
import java.util.List;
public class LC71Try1
{
public String simplifyPath(String path)
{
String ret="";
path=path.replaceAll("//", "/");
String[] str=path.split("/");
int len=str.length;
List<String> list=new ArrayList<String>();
for(int i=0;i<len;i++){
if(str[i].equals(".")||str[i].isEmpty()){
continue;
}
if(str[i].equals("..")){
if(list.size()>0){
list.remove(list.size()-1);
}
continue;
}
list.add(str[i]);
}
for(int j=0;j<list.size();j++){
ret=ret+"/"+list.get(j);
}
if(ret.isEmpty()){
ret="/";
}
return ret;
}
public static void main(String[] args)
{
LC71Try1 t=new LC71Try1();
System.out.println(t.simplifyPath("/.."));
}
}
哈哈