首页 > 其他 > 详细

LeetCode Simplify Path

时间:2015-04-02 16:28:16      阅读:182      评论: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
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!