摘要:題目給定一個(gè)文檔的完全路徑,請(qǐng)進(jìn)行路徑簡(jiǎn)化。例如,邊界情況你是否考慮了路徑的情況在這種情況下,你需返回。此外,路徑中也可能包含多個(gè)斜杠,如。文化和社會(huì)被恐懼所塑造,在將來(lái)這無(wú)疑也不會(huì)消失。
題目
給定一個(gè)文檔 (Unix-style) 的完全路徑,請(qǐng)進(jìn)行路徑簡(jiǎn)化。
例如,
path = "/home/", => "/home"
path = "/a/./b/../../c/", => "/c"
邊界情況:
你是否考慮了 路徑 = "/../" 的情況?
在這種情況下,你需返回 "/" 。
此外,路徑中也可能包含多個(gè)斜杠 "/" ,如 "/home//foo/" 。
在這種情況下,你可忽略多余的斜杠,返回 "/home/foo" 。
這個(gè)題目讓我想起了大學(xué)數(shù)據(jù)結(jié)構(gòu)的第一個(gè)實(shí)驗(yàn),寫一個(gè)計(jì)算器,包括括號(hào),小數(shù)等等情況,當(dāng)時(shí)需要處理的情況比較復(fù)雜,而自己也是寫得十分丑陋。
有興趣的同學(xué)可以看原博客:
https://blog.csdn.net/hit1110...
回到本題,要處理上面說(shuō)的各種符號(hào)的情況,無(wú)非就是向stack中加pop元素還是push元素。
pop : 兩個(gè)點(diǎn)的時(shí)候代表回上一級(jí)目錄,那么把棧定元素出棧
如果遇到不是點(diǎn),也不是空格,不是回退到上一級(jí)目錄,那么進(jìn)棧
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)
因?yàn)閷?duì)Python不是超級(jí)熟悉,這里踩了一個(gè)小小的坑。
python中 != ==是對(duì)值的比較,類似于java中的equals (值)
python中的 is, is not 是對(duì)對(duì)象本身的比較,類似于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近期熱門
恐懼從來(lái)不是一個(gè)好的顧問,不管是在我們的個(gè)人生活中,還是在社會(huì)中。文化和社會(huì)被恐懼所塑造,在將來(lái)這無(wú)疑也不會(huì)消失。
【Leetcode】70. 爬樓梯
【Leetcode】69. x 的平方根
【Spring】IOC是啥有什么好處
【Leetcode】67. 二進(jìn)制求和
一年不是365天,而是8760個(gè)小時(shí)!————艾力
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/42447.html
摘要:題目給定一個(gè)文檔的完全路徑,請(qǐng)進(jìn)行路徑簡(jiǎn)化。例如,邊界情況你是否考慮了路徑的情況在這種情況下,你需返回。此外,路徑中也可能包含多個(gè)斜杠,如。文化和社會(huì)被恐懼所塑造,在將來(lái)這無(wú)疑也不會(huì)消失。 題目 給定一個(gè)文檔 (Unix-style) 的完全路徑,請(qǐng)進(jìn)行路徑簡(jiǎn)化。 例如,path = /home/, => /homepath = /a/./b/../../c/, => /c 邊界情況:...
摘要:標(biāo)題文字簡(jiǎn)化風(fēng)格的絕對(duì)路徑。我們可以首先將所有的內(nèi)容從中分離出來(lái),然后分別處理。這里我們需要用到堆棧的數(shù)據(jù)結(jié)構(gòu)。堆棧有很多種實(shí)現(xiàn)方式,中的類類都可以實(shí)現(xiàn)其功能。我們將讀到的路徑入棧,根據(jù)操作符出棧,最后將棧中剩余的元素組織成路徑返回即可。 標(biāo)題文字 Given an absolute path for a file (Unix-style), simplify it. For exa...
摘要:分布式的管理和當(dāng)我在談?wù)摷軜?gòu)時(shí)我在談啥狀態(tài)碼詳解無(wú)狀態(tài)協(xié)議和請(qǐng)求支持哪些方法分層協(xié)議棧有哪些數(shù)據(jù)結(jié)構(gòu)運(yùn)用場(chǎng)景說(shuō)說(shuō)你常用的命令為什么要有包裝類面向?qū)ο蟮奶卣魇巧妒巧队惺裁春锰幭到y(tǒng)設(shè)計(jì)工程在線診斷系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理軟技能 HTTP 【HTTP】分布式session的管理 【HTTP】Cookie和Session 【HTTP】當(dāng)我在談?wù)揜estFul架構(gòu)時(shí)我在談啥?...
摘要:給定一個(gè)文檔的完全路徑,請(qǐng)進(jìn)行路徑簡(jiǎn)化。例如,邊界情況你是否考慮了路徑的情況在這種情況下,你需返回。此外,路徑中也可能包含多個(gè)斜杠,如。解決的思路很簡(jiǎn)單,用棧來(lái)解決。正常的路徑入棧,出棧,忽略 給定一個(gè)文檔 (Unix-style) 的完全路徑,請(qǐng)進(jìn)行路徑簡(jiǎn)化。 例如, path = /home/, => /home path = /a/./b/../../c/, => /c邊界情況:...
摘要:題目鏈接題目分析當(dāng)一個(gè)數(shù)字度旋轉(zhuǎn)后,不等于原來(lái)的數(shù)字,那么我們稱它是一個(gè)好數(shù)字。和旋轉(zhuǎn)后為對(duì)方。思路用函數(shù)生成到給定數(shù)組之間的所有數(shù)組。對(duì)每一個(gè)數(shù)字,用和函數(shù)處理。對(duì)數(shù)字,轉(zhuǎn)換成。否則返回,排除當(dāng)前數(shù)字。 D71 788. Rotated Digits 題目鏈接 788. Rotated Digits 題目分析 當(dāng)一個(gè)數(shù)字180度旋轉(zhuǎn)后,不等于原來(lái)的數(shù)字,那么我們稱它是一個(gè)好數(shù)字。 例...
閱讀 2884·2023-04-25 17:59
閱讀 712·2023-04-25 15:05
閱讀 692·2021-11-25 09:43
閱讀 3059·2021-10-12 10:13
閱讀 3573·2021-09-27 13:59
閱讀 3608·2021-09-23 11:21
閱讀 3917·2021-09-08 09:35
閱讀 593·2019-08-29 17:12