程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python description leetcode 71 Simplified path

編輯:Python

Python describe LeetCode 71. Simplified path

Hello everyone , I'm Qi Guanjie (qí guān jié ), stay 【 Qi Guanjie 】 official account 、CSDN、GitHub、B Share some technical blog posts on the website and other platforms , It mainly includes front-end development 、python The backend development 、 Applet development 、 Data structure and algorithm 、docker、Linux Common operation and maintenance 、NLP And other related technical blog , Time flies , Future period , come on. ~

If you love bloggers, you can focus on the bloggers' official account. 【 Qi Guanjie 】(qí guān jié), The articles inside are more complete and updated faster . If you need to find a blogger, you can leave a message at the official account. , I will reply to the message as soon as possible .


This article was originally written as 【 Qi Guanjie 】(qí guān jié ), Please support the original , Some platforms have been stealing blog articles maliciously !!! All articles please pay attention to WeChat official account 【 Qi Guanjie 】.

subject

Give you a string path , Indicates a point to a file or directory Unix style Absolute path ( With '/' start ), Please translate it into a more concise specification path .

stay Unix Style file system , One point (.) Represents the current directory itself ; Besides , Two points (..) Means to switch the directory to the next level ( Point to the parent directory ); Both can be part of a complex relative path . Any number of consecutive slashes ( namely ,'//') Are treated as a single slash '/' . For this problem , Points in any other format ( for example ,'...') Are considered documents / Directory name .

Please note that , Back to Canonical path The following format must be followed :

  • Always with slash '/' start .
  • There must be only one slash between two directory names '/' .
  • Last directory name ( If there is ) You can't With '/' ending .
  • Besides , The path contains only directories on the path from the root directory to the target file or directory ( namely , Not included '.' or '..').

Return the simplified Canonical path .

Example 1:

 Input :path = "/home/"
Output :"/home"
explain : Be careful , There is no slash after the last directory name .

Example 2:

 Input :path = "/../"
Output :"/"
explain : It's not feasible to go up from the root , Because the root directory is the highest level you can reach .

Example 3:

 Input :path = "/home//foo/"
Output :"/home/foo"
explain : In the canonical path , Multiple consecutive slashes need to be replaced with one slash .

Example 4:

 Input :path = "/a/./b/../../c/"
Output :"/c"

Tips :

  • 1 <= path.length <= 3000
  • path By the English letters , Numbers ,'.','/' or '_' form .
  • path Is an effective Unix Style absolute path .

Their thinking

Utilization stack . If it is .. And there are elements in the stack , The top of the stack will pop up . If it is others, press the stack ,Python Can be used directly split Remove excess /, So don't worry

Python describe

class Solution:
def simplifyPath(self, path: str) -> str:
path = path.split('/')
stack = []
for item in path:
if item == '':
continue
if item == '..':
if len(stack) > 0:
stack.pop()
elif item != '.':
stack.append(item)
return "/"+'/'.join(stack)

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved