leetcode71. 簡化路徑 Unix 風格

以 Unix 風格給出一個文件的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規范路徑。

在 Unix 風格的文件系統中,一個點(.)表示當前目錄本身;此外,兩個點 (..)?表示將目錄切換到上一級(指向父目錄);兩者都可以是復雜相對路徑的組成部分。更多信息請參閱:Linux / Unix中的絕對路徑 vs 相對路徑

請注意,返回的規范路徑必須始終以斜杠 / 開頭,并且兩個目錄名之間必須只有一個斜杠 /。最后一個目錄名(如果存在)不能以 / 結尾。此外,規范路徑必須是表示絕對路徑的最短字符串。

?

示例 1:

輸入:"/home/"
輸出:"/home"
解釋:注意,最后一個目錄名后面沒有斜杠。
示例 2:

輸入:"/../"
輸出:"/"
解釋:從根目錄向上一級是不可行的,因為根是你可以到達的最高級。
示例 3:

輸入:"/home//foo/"
輸出:"/home/foo"
解釋:在規范路徑中,多個連續斜杠需要用一個斜杠替換。
示例 4:

輸入:"/a/./b/../../c/"
輸出:"/c"
示例 5:

輸入:"/a/../../b/../c//.//"
輸出:"/c"
示例 6:

輸入:"/a//bc/d//././/.."
輸出:"/a/b/c"

思路:見代碼,用棧記錄每一個名字,遇到..就彈出,遇到單詞就壓入,最后加上“/”

class Solution {public String simplifyPath(String path) {Deque<String> stack = new LinkedList<>();for (String item : path.split("/")) {if (item.equals("..")) {if (!stack.isEmpty()) stack.pop();} else if (!item.isEmpty() && !item.equals(".")) stack.push(item);}String res = "";for (String d : stack) res = "/" + d + res;if(res.equals("")) return "/";return res;  }
}

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/444161.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/444161.shtml
英文地址,請注明出處:http://en.pswp.cn/news/444161.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

李牛(Linux)腳本

Linux課堂筆記day01 主要總結內容&#xff1a; 一&#xff1a;Linux背景介紹 二&#xff1a;系統操作 三&#xff1a;服務管理 四&#xff1a;shell腳本 五&#xff1a;文本操作 六:常用服務搭建 01&#xff1a;初識linux 收獲&#xff1a;可以熟練應對運維和開發 對以后的生…

leetcode601. 體育館的人流量(SQL)

X 市建了一個新的體育館&#xff0c;每日人流量信息被記錄在這三列信息中&#xff1a;序號 (id)、日期 (visit_date)、 人流量 (people)。 請編寫一個查詢語句&#xff0c;找出人流量的高峰期。高峰期時&#xff0c;至少連續三行記錄中的人流量不少于100。 例如&#xff0c;表…

李牛(Linux)打包

15&#xff1a;打包壓縮以及解壓縮 接下來我們來介紹打包壓縮以及解壓縮命令 首先我們要在腦海里想幾個問題&#xff1a; 1.打包壓縮以及解壓縮在字面上理解到底是什么意思&#xff1f; 是不是像我們生活見到的事例那樣 比如說&#xff1a;生產酒的廠商一般都是按照規則將12瓶…

notepad++ 文本文件內容丟失恢復

今天用著notepad不知道怎的&#xff0c;突然就崩潰了&#xff0c;然后我下次打開的時候彈了個框&#xff0c;我按了OK之后&#xff0c;里面所有的內容都不見了 網上百度了半天&#xff0c;總結如下&#xff1a; 在如下目錄下有notepad會自動保存的文件 C:\Users\Administrato…

jquery實現頁面提示,數據正在加載中。(

簡單代碼&#xff1a; jsp中代碼如下&#xff1a;<wbr> <div id"dataLoad" style"display:none"><!--頁面載入顯示--></wbr><wbr><wbr><table width100% height100% border0 aligncenter valignmiddle></wbr…

李牛(Linux)vi

16&#xff1a;強大的vi 引言&#xff1a;提到vi我們不得不提到vim 這兩種編輯器就先當于我們Windows操作系統當中的記事本 不過vi以及vim編輯器熟練掌握之后是不需使用鼠標進行操作的 完全都是由鍵盤來進行控制 那為什么可以不用鼠標呢 就是因為我們的vi編輯器是基于多模式的…

(多線程)leetcode1114. 按序打印 認識AtomicInteger

我們提供了一個類&#xff1a; public class Foo { public void one() { print("one"); } public void two() { print("two"); } public void three() { print("three"); } } 三個不同的線程將會共用一個 Foo 實例。 線程 A 將會調用 on…

李牛(Linux)

20&#xff1a;用戶和用戶組管理 引言&#xff1a; 新思維1&#xff1a;用戶&#xff1f;用戶是什么&#xff1f;能不能吃&#xff1f;好吃不&#xff01;哈哈 不開玩笑了 我們平常接觸的用戶就是window系統下的用戶 用戶名叫啥來著 哦 user 但是對于Windows操作系統來說 好像…

(多線程)leetcode1115. 交替打印FooBar 記得Thread.yield();

我們提供一個類&#xff1a; class FooBar { public void foo() { for (int i 0; i < n; i) { print("foo"); } } public void bar() { for (int i 0; i < n; i) { print("bar"); } } } 兩個不同的線程將會共用…

Date類(日期時間類)219

219節課堂筆記 1.概述&#xff1a;表示特定的時間 2.所在的類&#xff1a;java.util.Date(表示時間和日期的類) 類date標識特定的瞬間&#xff0c;精確到毫秒 3.毫秒的換算&#xff1a;1秒1000毫秒 tips&#xff1a;不可以認為是1秒等于60毫秒&#xff0c;與時鐘換算是不一樣的…

(多線程)leetcode1116. 打印零與奇偶數

假設有這么一個類&#xff1a; class ZeroEvenOdd { public ZeroEvenOdd(int n) { ... } // 構造函數 public void zero(printNumber) { ... } // 僅打印出 0 public void even(printNumber) { ... } // 僅打印出 偶數 public void odd(printNumber) { ... } …

Date類的構造方法以及成員方法220

220&#xff1a;date類的構造方法以及成員方法 /** date類的構造方法以及成員方法date 2020年4月27日上午10:41:59 / import java.util.Date;//注意進行類包的調用 public class zixuejava { public static void main(String[] args) { // TODO Auto-generated method stub de…

(多線程)leetcode1117. H2O 生成 認識Java中的PV原語

現在有兩種線程&#xff0c;氫 oxygen 和氧 hydrogen&#xff0c;你的目標是組織這兩種線程來產生水分子。 存在一個屏障&#xff08;barrier&#xff09;使得每個線程必須等候直到一個完整水分子能夠被產生出來。 氫和氧線程會被分別給予 releaseHydrogen 和 releaseOxygen …

首元節點

線性表的鏈式表示和實現&#xff1a; 1.區分一個概念&#xff1a;頭結點 頭指針 首元節點 首元節點&#xff1a;就是線性表&#xff08;這里為什么說是線性表&#xff0c;而不說是鏈表呢&#xff1f;因為我們先來講清楚首元節點的概念&#xff0c;不涉及指針&#xff09;當中第…

(多線程)leetcode1195. 交替打印字符串 最簡單解法一個變量搞定

編寫一個可以從 1 到 n 輸出代表這個數字的字符串的程序&#xff0c;但是&#xff1a; 如果這個數字可以被 3 整除&#xff0c;輸出 "fizz"。 如果這個數字可以被 5 整除&#xff0c;輸出 "buzz"。 如果這個數字可以同時被 3 和 5 整除&#xff0c;輸出 &…

MYSQ產品

前言&#xff1a;MySQL數據庫&#xff0c;隸屬于MySQLAB公司&#xff0c;總部位于瑞典&#xff0c;后被Oracle收購 MySQLAB公司是由monky及他的兩位好朋友創建的&#xff0c;先是被sun公司收購然后被偶爾甲骨文公司收購 MySQL的優點&#xff1a; 1.它的成本是比較低的&#xff…

處理百萬級以上的數據提高查詢速度的方法

1.應盡量避免在where子句中使用!或<>操作符&#xff0c;否則將引擎放棄使用索引而進行全表掃描。2.對查詢進行優化&#xff0c;應盡量避免全表掃描&#xff0c;首先應考慮在where及orderby涉及的列上建立索引。3.應盡量避免在where子句中對字段進行null值判斷&#xff0c…

leetcode三道shell題

給定一個文本文件 file.txt&#xff0c;請只打印這個文件中的第十行。 示例: 假設 file.txt 有如下內容&#xff1a; Line 1 Line 2 Line 3 Line 4 Line 5 Line 6 Line 7 Line 8 Line 9 Line 10 你的腳本應當顯示第十行&#xff1a; Line 10 sed -n 10p file.txt 給定一個…

DateFormat(炸窩)

222&#xff1a;DateFormat方法的使用以及功能&#xff1a; java.text.DateFormat是日期或者時間格式化子類的抽象類&#xff0c;作用&#xff1a;可以幫我們完成日期和文本之間的轉換&#xff0c;也就是可以在Date對象與String對象之間進行來回轉換 格式化&#xff1a; 按照指…

劍指offer:3-7記錄

找出數組中重復的數字。 在一個長度為 n 的數組 nums 里的所有數字都在 0&#xff5e;n-1 的范圍內。數組中某些數字是重復的&#xff0c;但不知道有幾個數字重復了&#xff0c;也不知道每個數字重復了幾次。請找出數組中任意一個重復的數字。 示例 1&#xff1a; 輸入&#…