首页 > 代码库 > LeetCode Simplify Path
LeetCode Simplify Path
class Solution { public: string simplifyPath(string path) { int len = path.length(); if (len < 2) return "/"; vector<string> spath; int p = -1, q = 0; // seperate the path into parts & simplify it with a stack while (q < len) { while (q < len && path[q] != ‘/‘) q++; if (p + 1 < q) { add_part_to_spath(path.substr(p + 1, q - p - 1), spath); } p = q; q++; } // build the final simplified path string res; for (int i=0; i<spath.size(); i++) { res.push_back(‘/‘); res.append(spath[i]); } if (res.length() == 0) res = "/"; return res; } void add_part_to_spath(string part, vector<string>& spath) { if (part == ".") { // do nothing; } else if (part == "..") { // goto the parent path part if (!spath.empty()) spath.pop_back(); } else { // enter a new part spath.push_back(part); } } };
也可以直接在原有字符串上操作,但还是这样简单明了一些
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。