题解 | #最长回文子串#
最长回文子串
https://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507
简单dp解决
import java.util.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNext()) { // 注意 while 处理多个 case
String str = in.nextLine();
System.out.println(getString(str));
}
}
public static int getString(String str){
if(str.length()<=1){
return str.length();
}
int max=1;
boolean[][] dp =new boolean[str.length()][str.length()];
for(int i=0;i<str.length();i++){
dp[i][i]=true;
}
for(int i=str.length()-1;i>=0;i--){
for(int j=i+1;j<str.length();j++){
if(str.charAt(i)==str.charAt(j)){
if(j-i<=2){
dp[i][j]=true;
}else{
dp[i][j]=dp[i+1][j-1];
}
if(dp[i][j]){
max=Math.max(max, j-i+1);
}
}
}
}
return max;
}
}
叮咚买菜工作强度 163人发布
查看5道真题和解析