#include <string>
#include <vector>
#include <iostream>
using namespace std;
class Solution {
public:
/*
从string的开头处开始访问
如果碰到斜杠
继续
如果是char
循环直到碰到斜杠
记录进入temp
如果temp=="."
继续
如果temp == ".."
如果final_result不为空
final_result pop最后两个值
继续
把temp push进去
如果final_result 为空
返回"/"
如果final_result不为空
循环加入 "/" 和 字符串
*/
};
string simplifyPath(string path) {
vector<string> final_result;
for(int i = 0; i < path.size(); i++){
if(path[i] == '/'){
continue;
}else{
string temp;
temp += path[i];
while (++i < path.size() && path[i] != '/')
temp += path[i];
i--;
if(temp == ".")
continue;
if(temp == ".."){
if(!final_result.empty()){
final_result.pop_back();
}
continue;
}
final_result.push_back(temp);
}
}
if(final_result.empty()){
return "/";
}else{
string result;
for(const auto & element:final_result)
result += "/" + element;
return result;
}
}
int main(){
string path = "/a/./b/../../c/";
cout << simplifyPath(path) << endl;
}