單鏈表反轉 不合法的路徑位址轉變為合法路徑

2021-09-27 06:47:23 字數 1745 閱讀 1811

單鏈表結構

單鏈表反轉問題就不細說,網上能找到很多。使用三個變數l、m、r互相賦值迭代,並建立指向關係,從而實現單鏈表的反轉。直接上**

class node(object):

def __init__(self, data, next=none):

self.val = data

self.next = next

def reversef(head):

if head == none:

return none

l, m, r = node, node, head

while r.next != none:

l = m

m = r

r = r.next

m.next = l

r.next = m

return r

if __name__ == '__main__':

l1 = node(3)

l1.next = node(2)

l1.next.next = node(1)

l1.next.next.next = node(9)

l = reversef(l1)

print (l.val, l.next.val, l.next.next.val, l.next.next.next.val)

輸出:

(9, 1, 2, 3)

process finished with exit code 0

問題:乙個合法的路徑中最後乙個字元不能是』/』,且子檔案與父檔案之間只能有乙個』/』,例如:/home/user/my/ae。

設計乙個演算法,將輸入的路徑字串轉變為合法路徑並輸出。

例子:

輸入: /home//user/myae

輸出: /home/user/my/ae

輸入: /home///opt//sdfe/

輸出: /home/opt/sdfe

**如下:

def lujing(s):

strs = s.split('/')

strt = list(filter(none,strs))

print('/'+'/'.join(strt))

if __name__ == '__main__':

s='ad/asdf//asdf///asdf//safd/ae///ead/'

lujing(s)

/ad/asdf/asdf/asdf/safd/ae/ead

process finished with exit code 0

思路:

通過split()方法將字串用 '/ 』 進行分割

刪除分割後得到的list表中的空元素 』 』

[『ad』, 『asdf』, 『』, 『asdf』, 『』, 『』, 『asdf』, 『』, 『safd』, 『ae』, 『』, 『』, 『ead』, 『』]

通過join()方法將list表中的元素通過 '/ 』 進行合併

注:filter() 函式是python的內建函式,用於過濾序列,過濾掉不符合條件的元素,返回由符合條件元素組成的新列表。

對不起,您輸入的內容不合法

v python全棧21期 if 全棧 in v print 包含敏感字元 v alex oldboy 張三 李四 if 李四 in v print 包含敏感字元 元組 tuple 同理v 預設按照鍵判斷,即判斷x是否是字典中的鍵 if x in v pass 問題1 判斷k1是否在v中?v if ...

Python列印不合法的檔名

問題 你的程式獲取了乙個目錄中的檔名列表,但是當它試著去列印檔案名的時候程式崩潰,出現了 unicodeencodeerror 異常和一條奇怪的訊息 surrogates not allowed 解決方案 當列印未知的檔名時,使用下面的方法可以避免這樣的錯誤 def bad filename fil...

ip位址合不合法怎麼看 判斷輸入的ip是否合法

判斷輸入的ip是否合法 ip應該是由.分隔的4段數字構成,數字的範圍是0 255 ip input 請隨意輸入乙個ip位址,判斷是否合法ip ip list ip.split print ip list new ip join ip list print new ip if0 int ip list...