Python3實現的判斷回文鍊錶演算法示例

2022-10-04 17:51:12 字數 1169 閱讀 9406

問題:

請判斷乙個鍊錶是否為回文鍊錶。

方案一:指標法

class solution:

def ispalindrome(self, head):

"""判斷乙個鍊錶是否是回文的,很自然的想法就是兩個指標,乙個指標從前往後走,乙個指標從後往前走,判斷元素值是否相同,這裡要分幾個步驟來進行求解:

1、找到鍊錶長度的一半,用追趕法,乙個指標一次走兩步,乙個指標一次走一步

2、qmsjickxr將後一半陣列轉置

3、判斷鍊錶是否是回文鍊錶

:type head: listnode

:rtype: bool

"""slow = fast = head

while fast and fast.next:

slow = slow.next

fast = fast.next.next

程式設計客棧node = none

while slow:

nxt = slow.next

slow.next = node

node = slow

slow = nxt

while node and head:

if node.val != head.val:

return false

node = node.next

head = head.next

return true

方案二:列表法

# definition for singly-linked list.

# class listnode:

# def __init__(self, x):

# self.val = www.cppcns.comx

# self.next = none

class solution:

def ispalindrome(self, head):

""":type head: listnode

:rtype: bool

"""res =

cur = head

while cur程式設計客棧:

res.appewww.cppcns.comnd(cur.val)

cur = cur.next

return res == res[: : -1]

leetcode 回文鍊錶 python3

class solution def ispalindrome self,head 判斷乙個鍊錶是否是回文的,很自然的想法就是兩個指標,乙個指標從前往後走,乙個指標從後往前走,判斷元素值是否相同,這裡要分幾個步驟來進行求解 1 找到鍊錶長度的一半,用追趕法,乙個指標一次走兩步,乙個指標一次走一步 2...

Python3判斷是否為回文數

原題 題目 不允許用str的方法!判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 ...

LeetCode 回文數 python3實現

題目描述 判斷乙個整數是否是回文數。回文數是指正序 從左向右 和倒序 從右向左 讀都是一樣的整數。示例 1 輸入 121 輸出 true 示例 2 輸入 121 輸出 false 解釋 從左向右讀,為 121 從右向左讀,為 121 因此它不是乙個回文數。示例 3 輸入 10 輸出 false 解釋...