JAVA朴素解法 简单dp 注意顺序
字符串运用-密码截取
http://www.nowcoder.com/questionTerminal/12e081cd10ee4794a2bd70c7d68f5507
import java.util.*; public class Main{ public static void main(String[] args){ Scanner in=new Scanner(System.in); String a=in.next(); System.out.println(getString(a)); } public static int getString(String a){ char[] chararr = a.toCharArray(); int len=chararr.length; if(len<2) return len; int start=0; int end=0; int maxLen=0; boolean[][] dp=new boolean[len][len]; /*这部分可不要 for(int i=0;i<len;i++){ dp[i][i]=true; }*/ for(int i=len-1;i>=0;i--){ for(int j=i;j<len;j++){ if(chararr[i]==chararr[j]){ if(j-i<3) dp[i][j]=true; else{ dp[i][j]=dp[i+1][j-1]; } if(dp[i][j]){ if(j-i+1>maxLen){ maxLen=j-i+1; start=i; end=j; } } } }//for j end }//for i end return maxLen; } }