mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-09 03:34:02 +08:00
最长回文字串Java实现
This commit is contained in:
@ -265,6 +265,32 @@ public:
|
|||||||
## Java
|
## Java
|
||||||
|
|
||||||
```java
|
```java
|
||||||
|
// 双指针 中心扩散法
|
||||||
|
class Solution {
|
||||||
|
public String longestPalindrome(String s) {
|
||||||
|
String s1 = "";
|
||||||
|
String s2 = "";
|
||||||
|
String res = "";
|
||||||
|
for (int i = 0; i < s.length(); i++) {
|
||||||
|
// 分两种情况:即一个元素作为中心点,两个元素作为中心点
|
||||||
|
s1 = extend(s, i, i); // 情况1
|
||||||
|
res = s1.length() > res.length() ? s1 : res;
|
||||||
|
s2 = extend(s, i, i + 1); // 情况2
|
||||||
|
res = s2.length() > res.length() ? s2 : res;
|
||||||
|
}
|
||||||
|
return res; // 返回最长的
|
||||||
|
}
|
||||||
|
public String extend(String s, int start, int end){
|
||||||
|
String tmp = "";
|
||||||
|
while (start >= 0 && end < s.length() && s.charAt(start) == s.charAt(end)){
|
||||||
|
tmp = s.substring(start, end + 1); // Java中substring是左闭右开的,所以要+1
|
||||||
|
// 向两边扩散
|
||||||
|
start--;
|
||||||
|
end++;
|
||||||
|
}
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Python
|
## Python
|
||||||
@ -292,11 +318,13 @@ class Solution:
|
|||||||
## Go
|
## Go
|
||||||
|
|
||||||
```go
|
```go
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## JavaScript
|
## JavaScript
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
|
Reference in New Issue
Block a user