Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit e1d11d2

Browse files
提交
1 parent 00b9c8c commit e1d11d2

File tree

2 files changed

+73
-0
lines changed

2 files changed

+73
-0
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
"""
2+
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
3+
4+
输入: "babad"
5+
输出: "bab"
6+
注意: "aba" 也是一个有效答案。
7+
"""
8+
9+
class Solution:
10+
def longestPalindrome(self, s: str) -> str:
11+
12+
n = len(s)
13+
# 中心扩展
14+
# 判断边界条件
15+
if n == 0:
16+
return ""
17+
18+
def extend(i: int, j: int, s: str) -> str:
19+
while (i >= 0 and j < len(s) and s[i] == s[j]):
20+
i -= 1
21+
j += 1
22+
return s[i + 1 : j]
23+
24+
max_len = 1
25+
tmp = s[0]
26+
for i in range(n - 1):
27+
e1 = extend(i, i, s)
28+
e2 = extend(i, i + 1, s)
29+
max_e = max(len(e1), len(e2))
30+
if max_e >= max_len:
31+
max_len = max_e
32+
tmp = e1 if len(e1) > len(e2) else e2
33+
return tmp

MID/链表/24-两两交换.py

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
""" 24. 两两交换链表中的节点
2+
给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。
3+
你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
4+
输入:head = [1,2,3,4]
5+
输出:[2,1,4,3]
6+
输入:head = []
7+
输出:[]
8+
输入:head = [1]
9+
输出:[1]
10+
11+
时间: O(n), 空间: O(1)
12+
"""
13+
14+
# Definition for singly-linked list.
15+
class ListNode:
16+
# 系统给出
17+
def __init__(self, val=0, next=None):
18+
self.val = val
19+
self.next = next
20+
class Solution:
21+
22+
def swapPairs(self, head: ListNode) -> ListNode:
23+
# 建立伪节点
24+
dummy = ListNode(0)
25+
# 将链表与伪节点连接
26+
dummy.next = head
27+
cur = dummy
28+
# 当存在下一个和下下一个节点时
29+
while cur.next and cur.next.next:
30+
preNode, forNode = cur.next, cur.next.next
31+
# 开始反转preNode和forNode节点
32+
cur.next = forNode
33+
# 一定要先将反转后的前一个节点与反转前的forNode的下一个节点去关联,即连接到剩余还未反转的节点上
34+
preNode.next = forNode.next
35+
# 反转节点
36+
forNode.next = preNode
37+
# 更新cur节点位置
38+
cur = cur.next.next
39+
return dummy.next
40+

0 commit comments

Comments
 (0)