zoukankan      html  css  js  c++  java
  • leetcode 71 Simplify Path

    题目连接

    https://leetcode.com/problems/simplify-path/ 

    Simplify Path

    Description

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

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

    简化linux文件路径,”.”代表当前目录,”..”代表上级目录 
    大体做法:先把path按’/’符分割保存起来(由于c++ string没有split函数,自己写一个吧) 
    再把切割后的字符串扫一遍即可。 
    具体如下

    class Solution {
    public:
        string simplifyPath(string path) {
            string ans;
            if(path.empty()) return ans;
            auto split = [=](char sep = '/')->vector<string> {
                string temp;
                vector<string> res;
                size_t start = 0, end = 0;
                while((end = path.find(sep, start)) != string::npos) {
                    temp = path.substr(start, end - start);
                    if(temp != "") res.emplace_back(temp);
                    start = end + 1;
                }
                temp = path.substr(start);
                if(temp != "") res.emplace_back(temp);
                return res;
            };
            vector<string> res = split();
            vector<string> stk;
            for(auto &r: res) {
                if(r ==".") continue;
                else if(r == "..") {
                    if(!stk.empty()) stk.pop_back();
                } else {
                    stk.push_back(r);
                }
            }
            if(stk.empty()) {
                ans.push_back('/');
            } else {
                for(auto &r: stk) {
                    ans.push_back('/');
                    ans += r;
                }
            }
            return ans;
        }
    };
  • 相关阅读:
    hdu 1045 Fire Net
    hdu 1044 Collect More Jewels
    hdu 1043 Eight
    hdu 1042 N!
    hdu 1041 Computer Transformation
    hdu 1040 As Easy As A+B
    CI在ngnix的配置
    angularjs表单验证checkbox
    chrome浏览器跨域设置
    angularjs向后台传参,后台收不到数据
  • 原文地址:https://www.cnblogs.com/GadyPu/p/5599045.html
Copyright © 2011-2022 走看看