zoukankan      html  css  js  c++  java
  • Leetcode71. Simplify Path简化路径

    给定一个文档 (Unix-style) 的完全路径,请进行路径简化。

    例如,

    path = "/home/", => "/home"

    path = "/a/./b/../../c/", => "/c"

    边界情况:

    • 你是否考虑了 路径 = "/../" 的情况?

    在这种情况下,你需返回 "/" 。

    • 此外,路径中也可能包含多个斜杠 '/' ,如 "/home//foo/" 。

    在这种情况下,你可忽略多余的斜杠,返回 "/home/foo" 。

    这道题的要求是简化一个Unix风格下的文件的绝对路径。

    字符串处理,".."是返回上级目录(如果是根目录则不处理),重复连续出现的'/',只按1个处理, 如果路径名是".",则不处理;

    class Solution {
    public:
        string simplifyPath(string path)
        {
            int len = path.size();
            string str = "";
            stack<string> q;
            for(int i = 0; i < len; i++)
            {
                if(i == len - 1 && path[i] != '/')
                    str += path[i];
                if(path[i] == '/' && str == "")
                    continue;
                else if(path[i] ==  '/' || i == len - 1)
                {
                    if(str == "..")
                    {
                        if(!q.empty())
                            q.pop();
                    }
                    else if(str == ".")
                    {
    
                    }
                    else
                    {
                        q.push(str);
                    }
                    str = "";
                }
                else
                    str += path[i];
            }
            string res = "";
            while(!q.empty())
            {
                res = q.top() + res;
                res = "/" + res;
                q.pop();
            }
            if(res == "")
                return "/";
            return res;
        }
    };
    
    
  • 相关阅读:
    不要对春运抱有幻想
    初识HTTP消息头(一)
    java中ArrayList 、LinkList区别以及速度对比
    jar包和war包的区别
    LUA 日期处理
    NGINXLUA——变量浅谈
    JDK和JRE的区别
    理解HTTP消息头 (五)——使用multipart/formdata上传文件
    安装Jetty
    TOMCATJARWAR事例讲解
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433859.html
Copyright © 2011-2022 走看看