0
点赞
收藏
分享

微信扫一扫

【LeeCode】5. 最长回文子串

【题目描述】

给你一个字符串 ​s​,找到 ​s​ 中最长的回文子串。

​​https://leetcode.cn/problems/longest-palindromic-substring/?favorite=2cktkvj​​


【示例】

【LeeCode】5. 最长回文子串_java


【代码 -- 133/143】

package com.company;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;


public class threeSum {
public static void main(String[] args) {
String str = "babad";
String str1 = "a";
// String str2 = "cbbd";
String str2 = "aacabdkacaa";
String str3 = "bb";
String str4 = "ccc"; // ccc
// longestPalindrome(str);
// longestPalindrome(str1);
System.out.println(longestPalindrome(str2));
// longestPalindrome(str3);
// longestPalindrome(str4);

}

public static String longestPalindrome(String s) {

String result = null;
List<String> list = new ArrayList<>();
if(huiwen(s)){
result = s;
return result;
}
int max = Integer.MIN_VALUE;
for(int i = 0; i < s.length(); i++){
for(int j = i + 2; j <= s.length(); j++){
String ss = s.substring(i, j);
if(huiwen(ss)){
if(ss.length() >= max){
max = ss.length();
list.add(ss);
}
}
}
}

if(list.size() > 0){
result = list.get(list.size() - 1);
}else{
result = s.charAt(0)+"";
}
return result;
}

private static boolean huiwen(String s) {
boolean flag = false;
String x = new StringBuilder(s).reverse().toString();
if(x.equals(s)){
flag = true;
}
return flag;
}
}



举报

相关推荐

0 条评论