摘要:題目給定一個文檔的完全路徑,請進行路徑簡化。例如,邊界情況你是否考慮了路徑的情況在這種情況下,你需返回。此外,路徑中也可能包含多個斜杠,如。文化和社會被恐懼所塑造,在將來這無疑也不會消失。
題目
給定一個文檔 (Unix-style) 的完全路徑,請進行路徑簡化。
例如,
path = "/home/", => "/home"
path = "/a/./b/../../c/", => "/c"
邊界情況:
你是否考慮了 路徑 = "/../" 的情況?
在這種情況下,你需返回 "/" 。
此外,路徑中也可能包含多個斜杠 "/" ,如 "/home//foo/" 。
在這種情況下,你可忽略多余的斜杠,返回 "/home/foo" 。
這個題目讓我想起了大學數據結構的第一個實驗,寫一個計算器,包括括號,小數等等情況,當時需要處理的情況比較復雜,而自己也是寫得十分丑陋。
有興趣的同學可以看原博客:
https://blog.csdn.net/hit1110...
回到本題,要處理上面說的各種符號的情況,無非就是向stack中加pop元素還是push元素。
pop : 兩個點的時候代表回上一級目錄,那么把棧定元素出棧
如果遇到不是點,也不是空格,不是回退到上一級目錄,那么進棧
java代碼class Solution { public String simplifyPath(String path) { Stackpython代碼stack = new Stack<>(); String[] p = path.split("/"); for (int i = 0; i < p.length; i++) { if (!stack.empty() && p[i].equals("..")) stack.pop(); else if (!p[i].equals(".") && !p[i].equals("") && !p[i].equals("..")) stack.push(p[i]); } return "/" + String.join("/", stack); } }
class Solution: def simplifyPath(self, path): """ :type path: str :rtype: str """ stack = [] p = path.split("/") for i in p: if len(stack) > 0 and i == "..": stack.pop() elif i != "." and i != "" and i != "..": stack.append(i) return "/" + "/".join(stack)
因為對Python不是超級熟悉,這里踩了一個小小的坑。
python中 != ==是對值的比較,類似于java中的equals (值)
python中的 is, is not 是對對象本身的比較,類似于java中的A == B (指針)
Fear has never been a good adviser, neither in our personal lives nor in our society. Cultures and societies that are shaped by fear, will without doubt not get a grip on the future. ?Angela Merkel近期熱門
恐懼從來不是一個好的顧問,不管是在我們的個人生活中,還是在社會中。文化和社會被恐懼所塑造,在將來這無疑也不會消失。
【Leetcode】70. 爬樓梯
【Leetcode】69. x 的平方根
【Spring】IOC是啥有什么好處
【Leetcode】67. 二進制求和
一年不是365天,而是8760個小時!————艾力
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/77176.html
摘要:題目給定一個文檔的完全路徑,請進行路徑簡化。例如,邊界情況你是否考慮了路徑的情況在這種情況下,你需返回。此外,路徑中也可能包含多個斜杠,如。文化和社會被恐懼所塑造,在將來這無疑也不會消失。 題目 給定一個文檔 (Unix-style) 的完全路徑,請進行路徑簡化。 例如,path = /home/, => /homepath = /a/./b/../../c/, => /c 邊界情況:...
摘要:標題文字簡化風格的絕對路徑。我們可以首先將所有的內容從中分離出來,然后分別處理。這里我們需要用到堆棧的數據結構。堆棧有很多種實現方式,中的類類都可以實現其功能。我們將讀到的路徑入棧,根據操作符出棧,最后將棧中剩余的元素組織成路徑返回即可。 標題文字 Given an absolute path for a file (Unix-style), simplify it. For exa...
摘要:分布式的管理和當我在談論架構時我在談啥狀態碼詳解無狀態協議和請求支持哪些方法分層協議棧有哪些數據結構運用場景說說你常用的命令為什么要有包裝類面向對象的特征是啥是啥有什么好處系統設計工程在線診斷系統設計與實現索引背后的數據結構及算法原理軟技能 HTTP 【HTTP】分布式session的管理 【HTTP】Cookie和Session 【HTTP】當我在談論RestFul架構時我在談啥?...
摘要:給定一個文檔的完全路徑,請進行路徑簡化。例如,邊界情況你是否考慮了路徑的情況在這種情況下,你需返回。此外,路徑中也可能包含多個斜杠,如。解決的思路很簡單,用棧來解決。正常的路徑入棧,出棧,忽略 給定一個文檔 (Unix-style) 的完全路徑,請進行路徑簡化。 例如, path = /home/, => /home path = /a/./b/../../c/, => /c邊界情況:...
摘要:題目鏈接題目分析當一個數字度旋轉后,不等于原來的數字,那么我們稱它是一個好數字。和旋轉后為對方。思路用函數生成到給定數組之間的所有數組。對每一個數字,用和函數處理。對數字,轉換成。否則返回,排除當前數字。 D71 788. Rotated Digits 題目鏈接 788. Rotated Digits 題目分析 當一個數字180度旋轉后,不等于原來的數字,那么我們稱它是一個好數字。 例...
閱讀 1619·2021-11-11 10:59
閱讀 2625·2021-09-04 16:40
閱讀 3650·2021-09-04 16:40
閱讀 2979·2021-07-30 15:30
閱讀 1615·2021-07-26 22:03
閱讀 3164·2019-08-30 13:20
閱讀 2225·2019-08-29 18:31
閱讀 439·2019-08-29 12:21