链接: 传送门
来源:牛客网
问题描述:
解题思路:
其实这道题的解决思路和这个题的思路是一样的:传送门
要解决这个问题,我们大致将它分为2个步骤:
- (1)得到所有可能出现的字符串
- (2)对1得到的字符串进行是否是回文字符串的判断
- (3)如果是回文字符串的话,记录他们的长度并找出他们中的最大值
解题代码:
import java.util.*;
public class Palindrome {
public int getLongestPalindrome(String A, int n) {
// write code here
int count=0; //记录每次字符串的长度
int max=0; //记录最大字符串的长度
for(int i=0;i<n;i++){
for(int j=i+1;j<=n;j++){
String s=A.substring(i,j);//通过for截取出所有可能出现的字符串
if(isPalindromic(s)){//进行判断:2步骤
count=s.length();
if(max<count){ //进行判断:3步骤
max=count;
}
}
}
}
return max;
}
public static boolean isPalindromic(String s) {
int i = 0;
int j = s.length() - 1;
while (i <= j) {
//取出新得到的字符串挨个字符进行比较
if (s.charAt(i) != s.charAt(j)) {
return false;
}
i++;
j--;
}
return true;
}
}