Cover image for 面试经典150题 P71 简化路径

面试经典150题 P71 简化路径

字数 211
阅读
访客

时间轴

时间轴

2025-11-18

init


题目:

要区分第一个"/“和后面的”/“的区别,第一个为根目录,后面的则是分隔符,因此我们可以把一个目录看作”/" + “目录名”。

如果目录为""即为空字符串,则为根目录。

123456789101112131415161718192021222324252627282930313233343536373839
#include <string>#include <stack>#include <sstream>using std::string;using std::stringstream;using std::stack;class Solution {    public:	string simplifyPath(string path)	{		string res, curr;		stringstream ss(path);		stack<string> st;		while (std::getline(ss, curr, '/')) {			if (curr.empty())				continue;			if (curr.compare("..") == 0) {				if (!st.empty())					st.pop();				else					continue;			} else if (curr.compare(".") == 0) {				continue;			} else {				st.push(curr);			}		}		while (!st.empty()) {			curr = st.top();			st.pop();			res.insert(0, curr);			res.insert(0, "/");		}		if (res.empty())			res = "/";				return res;	}};
评论加载中…