链接:71. 简化路径
题解:力扣
class Solution {
public:
string simplifyPath(string path) {
std::stack result;
int i = 0;
for (i = 0; i < path.size(); ++i) {
if (path[i] != '/') {
break;
}
}
for (; i < path.size();) {
int begin = i;
for (; i < path.size(); ++i) {
if (path[i] == '/') {
break;
}
}
cout << i << endl;
if (i-begin == 2 && path[begin] == '.' && path[i-1] == '.') {
if (!result.empty()) {
result.pop();
}
} else if (i-begin == 1 && path[begin] == '.') {
//continue;
} else {
result.push(path.substr(begin, i-begin));
//cout << path.substr(begin, i-begin) << endl;
}
for (; i < path.size(); ++i) {
if (path[i] != '/') {
break;
}
}
}
std::string result_str;
while (!result.empty()) {
cout << result.top() << endl;
if (result_str.empty()) {
result_str = result.top();
} else {
result_str = result.top() + "/" + result_str;
}
cout << result_str << endl;
result.pop();
}
result_str = "/" + result_str;
return result_str;
}
};



