成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[Leetcode] Simplify Path 化簡路徑

liangzai_cool / 3030人閱讀

摘要:棧法復(fù)雜度時(shí)間空間思路思路很簡單,先將整個(gè)路徑按照分開來,然后用一個(gè)棧,遇到時(shí)彈出一個(gè),遇到和空字符串則不變,遇到正常路徑則壓入棧中。注意如果結(jié)果為空,要返回一個(gè)彈出棧時(shí)要先檢查棧是否為空代碼

Simplify Path

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

For example,

path = "/home/", => "/home"
path = "/a/./b/../../c/", => "/c"
棧法 復(fù)雜度

時(shí)間 O(N) 空間 O(N)

思路

思路很簡單,先將整個(gè)路徑按照/分開來,然后用一個(gè)棧,遇到..時(shí)彈出一個(gè),遇到.和空字符串則不變,遇到正常路徑則壓入棧中。

注意

如果結(jié)果為空,要返回一個(gè)/

彈出棧時(shí)要先檢查棧是否為空

代碼
public class Solution {
    public String simplifyPath(String path) {
        Stack stk = new Stack();
        String[] parts = path.split("/");
        for(String part : parts){
            switch(part){
                case ".":
                case "" :
                    break;
                case "..":
                    if(!stk.isEmpty()){
                        stk.pop();
                    }
                    break;
                default:
                    stk.push(part);
            }
        }
        StringBuilder sb = new StringBuilder();
        if(stk.isEmpty()){
            return "/";
        }
        while(!stk.isEmpty()){
            sb.insert(0, "/"+stk.pop());
        }
        return sb.toString();
    }
}

2018/2

class Solution:
    def simplifyPath(self, path):
        """
        :type path: str
        :rtype: str
        """
        parts = path.split("/")
        simplified = []
        for part in parts:
            if part == "." or part == "":
                continue
            elif part == "..":
                simplified and simplified.pop()
            else:
                simplified.append(part)
        return "/" + "/".join(simplified)

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/64631.html

相關(guān)文章

  • leetcode71. Simplify Path

    摘要:標(biāo)題文字簡化風(fēng)格的絕對(duì)路徑。我們可以首先將所有的內(nè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...

    darkerXi 評(píng)論0 收藏0
  • [LeetCode] 71. Simplify Path

    Problem Given an absolute path for a file (Unix-style), simplify it. For example, path = /home/, => /home path = /a/./b/../../c/, => /c path = /a/../../b/../c//.//, => /c //here: b is cancelle...

    superw 評(píng)論0 收藏0
  • 71. Simplify Path

    摘要:題目解答的規(guī)則如下三種需要跳過的情況當(dāng)遇到時(shí),需要向前進(jìn)出來的順序是反的,所以加的時(shí)候,把最新出來的路徑加在前面 題目:Given an absolute path for a file (Unix-style), simplify it. For example,path = /home/, => /homepath = /a/./b/../../c/, => /cclick to ...

    EdwardUp 評(píng)論0 收藏0
  • [LintCode] Simplify Path [字符串操作]

    摘要:,可以用函數(shù)去掉所有,然后多考慮一個(gè)中間為空的。關(guān)于語句的一個(gè)特點(diǎn)我們對(duì)和其實(shí)都是不做操作,然而,兩個(gè)可以都,但是不能都不做操作。像這樣這樣這兩個(gè)就都會(huì)等價(jià)于下一個(gè)就會(huì)出錯(cuò)。 Problem Given an absolute path for a file (Unix-style), simplify it. Example /home/, => /home //去掉末尾的slash...

    leanxi 評(píng)論0 收藏0
  • 用Python學(xué)數(shù)學(xué)之Sympy代數(shù)符號(hào)運(yùn)算

    摘要:的符號(hào)運(yùn)算如果之前是學(xué)數(shù)學(xué)相關(guān)專業(yè)了解計(jì)算機(jī)代數(shù)系統(tǒng),就會(huì)對(duì)數(shù)學(xué)符號(hào)的運(yùn)算比較熟悉,而如果之前是程序員,可能會(huì)有點(diǎn)不太明白,下面我們就來了解一下。 在我們初、高中和大學(xué)近10年的學(xué)習(xí)時(shí)間里,數(shù)學(xué)一直占據(jù)著非常大的分量,但是回憶過去可以發(fā)現(xiàn),我們把大量的時(shí)間都花在反復(fù)解題、不斷運(yùn)算上,計(jì)算方法、運(yùn)算技巧、筆算能力以及數(shù)學(xué)公式的記憶仿佛成了我們學(xué)習(xí)數(shù)學(xué)的全部。這些記憶和技巧沒幾年就忘掉了,...

    Jackwoo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<