简化文件的绝对路径 Simpify Path
2014-02-23 14:37
204 查看
在操作系统中,每个文件都有一个绝对路径。并且其最简化的形式是唯一的。对于Unix系列系统,绝对路径是从根路径/开始的,用正斜杠表示。一个句点.表示当前路径,两个句点..表示上一级路径。对于一个路径字符串,从左到右依次读。
下面的程序是用来简化Unix文件系统的路径字符串,使其达到最简化的程序,取出中间多余的/或者重复的层次进出。
思想:用一个栈来维护绝对路径中从根到文件的纯净的层次次序,去除重复的部分。
代码:
class Solution {
public:
string simplifyPath(string path) { //absolute path
stack<string> s;
int len = path.length();
int i = 0;
string tmp;
while(i < len)
{
//pass /
while(i < len && path[i] == '/')
i++;
// read directory-name
tmp.clear();
while(i < len && path[i] != '/')
{
tmp += path[i];
i++;
}
// get in or get out
if(tmp == "..")
{
if(!s.empty())
s.pop();
}
else if(tmp == ".")
continue;
else if(!tmp.empty())
{
s.push(tmp);
}
}
if(s.empty())
return string("/");
string result = "";
while(!s.empty())
{
result = "/" + s.top() + result;
s.pop();
}
return result;
}
};
下面的程序是用来简化Unix文件系统的路径字符串,使其达到最简化的程序,取出中间多余的/或者重复的层次进出。
思想:用一个栈来维护绝对路径中从根到文件的纯净的层次次序,去除重复的部分。
代码:
class Solution {
public:
string simplifyPath(string path) { //absolute path
stack<string> s;
int len = path.length();
int i = 0;
string tmp;
while(i < len)
{
//pass /
while(i < len && path[i] == '/')
i++;
// read directory-name
tmp.clear();
while(i < len && path[i] != '/')
{
tmp += path[i];
i++;
}
// get in or get out
if(tmp == "..")
{
if(!s.empty())
s.pop();
}
else if(tmp == ".")
continue;
else if(!tmp.empty())
{
s.push(tmp);
}
}
if(s.empty())
return string("/");
string result = "";
while(!s.empty())
{
result = "/" + s.top() + result;
s.pop();
}
return result;
}
};
相关文章推荐
- python获取文件绝对路径解决找不到文件句柄的问题实例(readConfig.py)V1.2
- 利用递归算法遍历所有文件并打印文件绝对路径(包括文件夹)
- modelsim仿真rom.mif文件配置需要绝对路径
- 根据Uri获取文件绝对路径
- JS魔法堂:获取当前脚本文件的绝对路径
- Eclipse RCP中获取Plugin/Bundle中文件资源的绝对路径(转载)
- VS项目中调用他人提供的.lib和.dll文件的用法(绝对路径和相对路径)
- python3中获取文件当前绝对路径的两种方法
- JAVA之File类-将指定目录下的所有java文件的绝对路径存储到文本文件中
- C++中相对路径与绝对路径以及斜杠与反斜杠的区别------路径中有空格为什么打不开文件
- Tomcat上文件的绝对路径访问笔记
- jar包中读取文件系统绝对路径,相对路径,以及jar包内部路径的写法
- iOS中,文件相对路径、绝对路径切换
- php dirname(__FILE__) 获取当前文件的绝对路径
- Weblogic web应用中获取文件的绝对路径
- iOS开发之--为PCH文件添加绝对路径
- 获取当前可执行文件的路径(绝对路径)
- 如何设置模拟器中文件的绝对路径?
- java代码实现输出指定以.java结尾的文件的绝对路径
- HTTP 错误 500.19 – Internal Server Error web.config 文件的 system.webServer/httpErrors 节中不允许绝对物理路径“C:\inetpub\custerr”[转]