package string;
import java.util.Scanner;
/**
* @author : zhaoliang
* @program :newCoder
* @description : 最长回文子串
* @create : 2020/11/20 19:03
*/
public class LongestPalindromechil {
//以某个元素为中心,找到s中的回文子串,假设长度为1000
private static int index,len;
public static String longestPalindrome(){
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
if (s.length() <2)return s;
for (int i = 0; i <s.length()-1 ; i++) {
PalindRomeHelper(s,i,i);
PalindRomeHelper(s,i,i+1);
}
return s.substring(index,index+len);
}
private static void PalindRomeHelper(String s, int l, int r) {
while (l >=0 && r <=s.length() && s.charAt(l) == s.charAt(r)){
l--;
r++;
}
if (len < r-l-1){
index = l+1;
len = r-l-1;
}
}
public static void main(String[] args) {
System.out.println(longestPalindrome());
}
}
常见算法-最长回文串
最新推荐文章于 2024-09-16 06:54:08 发布