3.14 Simplify Path
来源:互联网 发布:软件开发业务介绍 编辑:程序博客网 时间:2024/05/01 21:58
http://www.cnblogs.com/TenosDoIt/p/3465328.html
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"
.
分析:需要注意的是/…可以表示名字为…的路径,路径的最后可能没有/。可以利用栈,碰到正常路径压入栈中,碰到/.不作任何操作,碰到/..删除栈顶元素。下面代码中用数组来模拟栈
class Solution {public: string simplifyPath(string path) { int len = path.size(); vector<string> vec; int i = 0, index = 0; while(i < len) { int j = path.find('//', i + 1); string tmp; if(j != string::npos) tmp = path.substr(i, j - i); else {tmp = path.substr(i, len); j = len;} if(tmp == "/"); else if(tmp == "/."); else if(tmp == "/..") {if(!vec.empty())vec.pop_back();} else vec.push_back(tmp); i = j; } if(vec.empty())return "/"; else { string res; for(int i = 0; i < vec.size(); i++) res += vec[i]; return res; } }};
0 0
- 3.14 Simplify Path
- 3.14 Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- Simplify Path
- 导出svn日志
- json使用时需要导入的包
- 一个项目经历的CheckList 。。。。。。。。。
- 黑马程序员-java中的String
- windows下安装jira6.04,汉化,破解
- 3.14 Simplify Path
- Jquery模拟单选按钮与多选按钮
- 佳澜祛斑美白免洗面膜
- MySQL多表查询
- 求购java web开发框架
- .tar.bz2文件解压命令
- 基于wait和notify的生产者消费者实例
- 佳澜祛斑美白面膜
- 四维空间解密