zoukankan      html  css  js  c++  java
  • simplify-path-字符串处理,去除多余路径

    题目描述

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

    For example,
    path ="/home/", =>"/home"
    path ="/a/./b/../../c/", =>"/c"

    click to show corner cases.

    Corner Cases:
    • Did you consider the case where path ="/../"?
      In this case, you should return"/".
    • Another corner case is the path might contain multiple slashes'/'together, such as"/home//foo/".
      In this case, you should ignore redundant slashes and return"/home/foo".
     
    记住stringstream以及getline函数的作用
    class Solution {
    public:
        string simplifyPath(string path) {
            vector<string> str;
            stringstream ss(path);
            string sub;
            while(getline(ss,sub,'/'))
            {
                if(sub=="."||sub=="")
                    continue;
                if(sub==".."&&str.size())
                    str.pop_back();
                if(sub!="..")
                    str.push_back(sub);
            }
            string res;
            for(string s:str)
                res+="/"+s;
            if(res.empty())
                res+="/";
            return res;
        }
    };
  • 相关阅读:
    OpenLDAP与Apache
    OpenLDAP双主
    OpenLDAP主从
    LDAP与禅道
    LDAP与jenkins
    LDAP与Samba
    LDAP与SSH
    LDAP客户端
    LDAP与migrationtools 导入系统账号
    OpenLDAP与phpldapadmin的搭建
  • 原文地址:https://www.cnblogs.com/zl1991/p/9630585.html
Copyright © 2011-2022 走看看