码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode Simplify Path

时间:2015-04-02 16:28:18      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:

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

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

题意:问最后的路径是什么。

思路:说白了就是字符串的处理。".."的话就pop一个,字母的话就是push

class Solution {
	public:
		string simplifyPath(string path) {
			vector<string> ans;
			int i = 0;
			while (i < path.size()) {
				int end = i + 1;
				while (end < path.size() && path[end] != '/') end++;
				string sub = path.substr(i+1, end-i-1);
				if (sub.length() > 0) {
					if (sub == "..")  {
						if (!ans.empty())
							ans.pop_back();
					} else if (sub != ".")
						ans.push_back(sub);
					
				}
				i = end;
			}

			if (ans.empty()) return "/";
			string tmp = "";
			for (int i = 0; i < ans.size(); i++) 
				tmp += "/" + ans[i];

			return tmp;
		}
};


LeetCode Simplify Path

标签:

原文地址:http://blog.csdn.net/u011345136/article/details/44832871

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!