zoukankan      html  css  js  c++  java
  • leetcode 79:simplify path

    Given an absolute path for a file (Unix-style), simplify it.

    For example,
    path = "/home/", => "/home"

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

    本题简单来说 就是字符串的处理 同时要有相关的情况分类 比如当前目录 父目录 多个斜线等

    但其实 就父目录时需要回到上一路经 当前目录时不做任何变化 其他目录时需要进入其他目录 这一特征  本题可用栈来存储整个路径寻找的过程

    在path中 逐一找到斜线之间的当前路径名 并分类判断 分类处理  使得栈中存储的为路径的一系列名字  最后再反向串起来成路径真正的字符串即可。

    class Solution {
    public:
        string simplifyPath(string path) {
            string res_path="";
            if (path.size()==0)
                return res_path;
            stack<string> stack_path;
            for (int i=0; i<path.size();)
            {
                while(i<path.size() && path[i]=='/')
                    ++i;
                string name="";
                while(i<path.size() && path[i]!='/')
                    name += path[i++];
                if (name==".." && !stack_path.empty())
                    stack_path.pop();
                else if(name!="" && name!="." && name!="..")
                    stack_path.push(name);
            }
            if (stack_path.empty())
                res_path += '/';
            else
            {
                while(!stack_path.empty())
                {
                    res_path = '/'+stack_path.top()+res_path;
                    stack_path.pop();
                }
            }
            return res_path;
        }
    };

  • 相关阅读:
    小程序路由
    机器学习笔记—支持向量机(1)
    用极大似然估计法推出朴素贝叶斯法中的先验概率估计公式
    机器学习笔记—生成学习
    机器学习笔记—再谈广义线性模型
    机器学习笔记—指数分布簇和广义线性模型
    机器学习笔记—Logistic 回归
    机器学习笔记—局部权重线性回归
    机器学习笔记—线性回归
    机器学习笔记1
  • 原文地址:https://www.cnblogs.com/weiyi-mgh/p/6406363.html
Copyright © 2011-2022 走看看