2 Star 0 Fork 0

xinanXu/myleetcode

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
LC71.cpp 1.52 KB
一键复制 编辑 原始数据 按行查看 历史
xinanXu 提交于 2024-01-27 22:47 . 71. 简化路径
class Solution {
public:
string simplifyPath(string path) {
int len = path.size();
if (!len) return "";
stack<string> s;
s.push("root");
string ret;
for (int i = 0; i < len; ) {
if (path[i] == '/') {
i++;
continue;
} else if (path[i] == '.') {
if (i + 1 >= len) {
i++;
continue;
} else if (path[i+1] == '/') {
i += 2;
continue;
} else if (path[i+1] == '.') {
if (i + 2 < len) {
if (path[i+2] != '/') {}
else {
if (s.top() != "root") s.pop();
i += 3;
continue;
}
} else {
if (s.top() != "root") s.pop();
i += 3;
continue;
}
}
}
string temp;
while (i < len && path[i] != '/') {
temp.push_back(path[i]);
i++;
}
s.push(temp);
}
stack<string> t;
while (s.top() != "root") {
t.push(s.top());
s.pop();
}
while (!t.empty()) {
ret += '/';
ret += t.top();
t.pop();
}
if (!ret.size()) ret = "/";
return ret;
}
};
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/DearAtri/myleetcode.git
git@gitee.com:DearAtri/myleetcode.git
DearAtri
myleetcode
myleetcode
master

搜索帮助