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;
        }
    };
    
    
  • 相关阅读:
    Linux用户配置sudo权限(visudo)
    Memcached 实战
    安装完centos7 root目录下的文件anaconda-ks.cfg
    通过命令查看centos机器公网ip
    .env修改后不生效
    laravel事务回滚失败
    windows10 PHP7 Sqlserver 扩展
    PHP生成html格式数据字典
    服务器初始化脚本
    PHP导出Excel表格实例
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433859.html
Copyright © 2011-2022 走看看