package com.cjh.str;
import com.sun.media.sound.SoftLanczosResampler;
public class Str2 {
public static void main(String[] args) {
//求字符串的最长回文子串
System.out.println(longest("babad"));
}
public static String longest(String str) {
char[] chars = str.toCharArray();
for (int i = 0; i < chars.length - 1; i++) {
extend(chars, i, i);//一个字符作为中心点
extend(chars, i, i + 1);//两个字符作为中心点
}
return new String(chars,left,right - left + 1);
}
static int left;
static int right;
public static void extend(char[] chars, int i, int j) {
while(i >=0 && j < chars.length && chars[i] == chars[j]) {
//如果是回文
i--;
j++;
}
//如果不是回文
i++;
j--;
if (j-i > right - left) {
left = i;
right = j;
}
}
}
求字符串的最长回文子串
最新推荐文章于 2026-01-08 15:22:05 发布

1220

被折叠的 条评论
为什么被折叠?



