mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 11:34:46 +08:00
加入python版本的双指针解法
This commit is contained in:
@ -288,7 +288,34 @@ class Solution:
|
|||||||
return s[left:right + 1]
|
return s[left:right + 1]
|
||||||
|
|
||||||
```
|
```
|
||||||
|
> 双指针法:
|
||||||
|
```python
|
||||||
|
class Solution:
|
||||||
|
def longestPalindrome(self, s: str) -> str:
|
||||||
|
|
||||||
|
def find_point(i, j, s):
|
||||||
|
while i >= 0 and j < len(s) and s[i] == s[j]:
|
||||||
|
i -= 1
|
||||||
|
j += 1
|
||||||
|
return i + 1, j
|
||||||
|
|
||||||
|
def compare(start, end, left, right):
|
||||||
|
if right - left > end - start:
|
||||||
|
return left, right
|
||||||
|
else:
|
||||||
|
return start, end
|
||||||
|
|
||||||
|
start = 0
|
||||||
|
end = 0
|
||||||
|
for i in range(len(s)):
|
||||||
|
left, right = find_point(i, i, s)
|
||||||
|
start, end = compare(start, end, left, right)
|
||||||
|
|
||||||
|
left, right = find_point(i, i + 1, s)
|
||||||
|
start, end = compare(start, end, left, right)
|
||||||
|
return s[start:end]
|
||||||
|
|
||||||
|
```
|
||||||
## Go
|
## Go
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
Reference in New Issue
Block a user