LeetCode:简化路径

算法思想:
将字符串以 / 切割成不同的子串,由题意知:如果是 . 直接取消,如果是 . . 则返回上一级,即删除上一步的路径子串。
典型的字符串切割,然后根据规律重组。
代码:

class Solution {
public:
    string simplifyPath(string path) {
        string result,s;
        stringstream spath(path);
        vector v;
        while(getline(spath,s,'/')){
            if(s==""||s=="."){
                continue;
            }
            if(s==".."&&!v.empty()){
                v.pop_back();
            }
            else if(s!=".."){
                v.push_back(s);
            }
        }
        for(auto t:v){
            result+='/'+t;
        }
        return result.empty()?"/":result;
    }
};

你可能感兴趣的:(LeetCode:简化路径)