以 unix 風格給出乙個檔案的絕對路徑,你需要簡化它。或者換句話說,將其轉換為規範路徑。
在 unix 風格的檔案系統中,乙個點(.)表示當前目錄本身;此外,兩個點 (…) 表示將目錄切換到上一級(指向父目錄);兩者都可以是複雜相對路徑的組成部分。更多資訊請參閱:linux / unix中的絕對路徑 vs 相對路徑
請注意,返回的規範路徑必須始終以斜槓 / 開頭,並且兩個目錄名之間必須只有乙個斜槓 /。最後乙個目錄名(如果存在)不能以 / 結尾。此外,規範路徑必須是表示絕對路徑的最短字串。
示例 1:
輸入:"/home/"
輸出:"/home"
解釋:注意,最後乙個目錄名後面沒有斜槓。
示例 2:
輸入:"/home//foo/"
輸出:"/home/foo"
解釋:在規範路徑中,多個連續斜槓需要用乙個斜槓替換。
示例 4:
輸入:"/a/./b/…/…/c/"
輸出:"/c"
示例 5:
輸入:"/a/…/…/b/…/c//.//"
輸出:"/c"
示例 6:
輸入:"/a//bc/d//././/…"
輸出:"/a/b/c"
split 用 python 好用一些
class solution(object):
def simplifypath(self, path):
""":type path: str
:rtype: str
"""dirs = path.split("/")
res =
for dir in dirs:
if dir == "." or dir == "":
continue
elif dir == "..":
if res:
res.pop(-1) # 棧的思路
else:
return "/" + "/".join(res)
javascript翻轉字串演算法挑戰
你可以先把字串轉化成陣列,再借助陣列的reverse方法翻轉陣列順序,然後把陣列轉化成字串。function reversestring str reversestring hello reversestring hello 應該返回乙個字串 reversestring hello 應該返回 oll...
nefu1267挑戰字串
因為要求最大美麗值和的子串,不能相互重疊,那麼我們記錄每個子串的長度dep i 在對母串進行字串匹配時,進行狀態轉移,ans i max ans i ans i dep i val i 這樣就能求得最大的答案了。include include include include include incl...
leetcode 位元組跳動 挑戰字串
換句話說,第乙個字串的排列之一是第二個字串的子串。示例1 輸入 s1 ab s2 eidbaooo 輸出 true 解釋 s2 包含 s1 的排列之一 ba 示例2 輸入 s1 ab s2 eidboaoo 輸出 false 注意 輸入的字串只包含小寫字母 兩個字串的長度都在 1,10,000 之間...