您的位置:首页 > 娱乐 > 明星 > 代运营公司收费_投简历找工作哪个网站好_建网站模板_网站优化关键词排名公司

代运营公司收费_投简历找工作哪个网站好_建网站模板_网站优化关键词排名公司

2024/12/23 17:05:36 来源:https://blog.csdn.net/xxxmmc/article/details/143032382  浏览:    关键词:代运营公司收费_投简历找工作哪个网站好_建网站模板_网站优化关键词排名公司
代运营公司收费_投简历找工作哪个网站好_建网站模板_网站优化关键词排名公司

题意:给定一个字符串我要得到简化后的路径。 '…‘代表上个路径,’.'代表当前路径

Input: path = “/home/user/Documents/…/Pictures”

Output: “/home/user/Pictures”
https://leetcode.com/problems/simplify-path/description/

解析:首先这道题肯定是从头到尾遍历来做,难点在于我应该用什么判断语句。
如果结尾能够+一个‘/’判断会少很多。用一个cur变量来保存当前可以进入栈的元素,用一个栈来存放当前所有的路径,最后重组即可。

class Solution {
public:string simplifyPath(string path) {vector<string> st;string cur;string ret;if(path.back() != '/') {path += '/';}for(int i = 0; i < path.size(); i++) {if(path[i] != '/') {cur += path[i];continue;} else {if (cur == "..") {if(st.size()) {st.pop_back();}} else if (cur != "." && cur.size()) {st.push_back(cur);}cur.clear();}}if(!st.size()) return "/";for(auto&p : st) {ret += '/';ret += p;}return ret;}
};

Leetcode 71(错误答案)

这种情形没有考虑到/…hidden/的情形

class Solution {
public:string simplifyPath(string path) {vector<string> st;string ret;for(int i = 0; i < path.size(); i++) {if(isalpha(path[i])) {int j = i;while(isalpha(path[j])) j++;string p = path.substr(i, j-i);st.push_back(p);i = j - 1;}if(path[i] == '.')  {int j = i;while((path[j] == '.')) j++;// one dotif(j-i == 1)continue;if(j-i == 2) {if(st.size()) {st.pop_back();}}if(j-i > 2) {string p = path.substr(i, j-i);st.push_back(p);}i = j - 1;}if(path[i] == '/') continue;}if (!st.size()) {return "/";}for(auto&p : st) {ret += '/';ret += p;}return ret;}
};

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com