题解 | #密码截取#
密码截取
https://www.nowcoder.com/practice/3cd4621963e8454594f00199f4536bb1
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
String str=in.nextLine();
System.out.println(getLen(str));
}
public static int getLen(String str)
{
boolean[][]dp=new boolean[str.length()][str.length()];
if(str.length()<2) return str.length();
for(int i=0;i<str.length();i++)
dp[i][i]=true;
int maxlen=0;
for(int len=1;len<=str.length();len++)
{
for(int j=0;j<str.length();j++)
{
int i=j+len-1;
if(i>=str.length()) break;
if(i<str.length()&&str.charAt(i)==str.charAt(j))
{
if(i-j<3)
dp[j][i]=true;
else dp[j][i]=dp[j+1][i-1];
}
else{
dp[j][i]=false;
}
if(dp[j][i]==true)
maxlen=Math.max(maxlen,i-j+1);
}
}
return maxlen;
}
}
