69 leetcode - Simplify Path
来源:互联网 发布:网络找人 编辑:程序博客网 时间:2024/05/14 03:16
注意,在这个题里面,...
也视为一个目录…,还有可能出现多个/
,如////
#!/usr/bin/python# -*- coding: utf-8 -*-'''Simplify PathGiven an absolute path for a file (Unix-style), simplify it.For example,path = "/home/", => "/home"path = "/a/./b/../../c/", => "/c"'''#解决方法栈,题不难,情况很多...class Solution(object): def simplifyPath(self, path): """ :type path: str :rtype: str """ ret = [] index = 0 length = len(path) while index < length: if path[index] == '.': if (index + 1) < length: if path[index + 1] == '/': index += 2 elif path[index + 1] == '.': if index + 2 < length: if path[index + 2] == '/': times = 0 while ret and times < 2: if ret.pop() == '/': times += 1 ret.append('/') index += 3 else: ret.append(path[index]) ret.append(path[index + 1]) ret.append(path[index + 2]) index += 3 else: times = 0 while ret and times < 2: if ret.pop() == '/': times += 1 ret.append('/') index += 3 else: ret.append(path[index]) ret.append(path[index + 1]) index += 2 else: break else: if not (ret and ret[-1] == '/' and path[index] == '/'): ret.append(path[index]) index += 1 while ret and ret[-1] == '/': ret.pop() if not ret: return '/' return ''.join(ret)if __name__ == "__main__": s = Solution() print s.simplifyPath("///eHx/..") print s.simplifyPath("/...") print s.simplifyPath("/.../") print s.simplifyPath("/.") print s.simplifyPath("/../") print s.simplifyPath("/home//foo/") print s.simplifyPath("/home/foo/.ssh/../.ssh2/authorized_keys") print s.simplifyPath("/home//foo/") print s.simplifyPath("/..hidden") print s.simplifyPath("/home/..") print s.simplifyPath("/home/./././") print s.simplifyPath("/home/") print s.simplifyPath("/a/./b/../../c/")
还可以在字符串后面添加一个’/’保证字符串以’/’结尾,这样就会简化很多.
0 0
- 69 leetcode - Simplify Path
- LeetCode: Simplify Path
- LeetCode Simplify Path
- LeetCode : Simplify Path
- [Leetcode] Simplify Path
- [leetcode] simplify path
- [LeetCode] Simplify Path
- leetcode 100: Simplify Path
- [leetcode]Simplify Path
- [LeetCode]Simplify Path
- [leetCode] Simplify Path
- [leetcode]Simplify Path
- [leetcode] Simplify Path
- [LeetCode] Simplify Path
- leetcode simplify path
- Leetcode: Simplify Path
- LeetCode题解:Simplify Path
- [LeetCode] Simplify Path
- APP如何获得手机的个人热点的状态
- 使用git上传代码到github
- 我模仿了一个自助装机的页面,可是有一个功能一直实现不了。请求高手帮我看看。
- np.zeros()思考
- Android Studio R.java 找不到
- 69 leetcode - Simplify Path
- invalidate();就是不执行!不知道为什么求大神解决下!!!!
- Mybatis添加功能时获取mysql自增主键和非自增主键的返回值
- 比特币(Bitcoin)介绍
- VS 中本地调试webservice代码
- google搜索我的博文
- HTML DOM elements 集合包含哪些元素
- 最优化学习笔记(十六)——拟牛顿法(2)
- 嗨,ACM,再见!