Simplify Path
程序员文章站
2022-03-05 12:17:11
...
解析:这道题不是很难,主要是把情况分清楚就行,也是一道模拟题
所给的示例当中,少了一种比较关键的,即当’.'连续出现3次或3次以上,就表示文件名,
例:/head/…/ 输出:/head/…
’/'作为分隔符,无非出现以下3种情况:
- “.” 表示当前路径
- "…"表示上层路径
- 文件名
故我们只需遍历到’/'时,直接continue就行,其他情况保存在director当中,对director
进行判断是以上哪种情况,进行相应处理即可:
- 不做任何操作
- 去除上一层目录:pop_back
- 添加当前目录:push_back
class Solution {
public:
string simplifyPath(string path) {
if (path.empty() || path.length() == 1) return path;
vector<string> v_res;
int size = path.length();
string director = "";
for (int i = 0; i < size; i++){
if (path[i] == '/') continue;
while (i < size && path[i] != '/'){
director += path[i];
i++;
}
if (director == ".." && !v_res.empty())
v_res.pop_back(); //去除上一层目录
if (director != "." && director != "..")
v_res.push_back(director); //添加当前目录
director = "";
}
if (v_res.empty()) return "/";
for (int i = 0; i < v_res.size(); ++i) director += "/" + v_res[i];
return director;
}
};
上一篇: TS码流解析-4-解析PMT表
下一篇: 2_chapter9
推荐阅读
-
为什么phpinfo()输出的环境变量PATH值,和小弟我本机设置的不一样呢?
-
cookie中的path与domain属性详解
-
关于 npm 安装angular报错‘code EEXIST‘,ERR! path C:UsersAdministratorAppDataRoaming pm ode_modules
-
Falling back to java on path. This behavior is deprecated
-
nginx中path模式配置示例
-
python sys模块sys.path使用方法示例
-
get_include_path()是什么意思?该如何处理
-
php中$_SERVER[PATH_INFO]变量使用详解
-
Python sys.path详细介绍
-
[LeetCode 4.18] Minimum Path Sum