题解 | #最长回文子串#
最长回文子串
http://www.nowcoder.com/practice/b4525d1d84934cf280439aeecc36f4af
1.首先建一个包,包名为zhongdeng;
2.再建一个类,类名为SolutionNC17;
3.方法getLongestPalindrome() 通过双重for循环来计算题目要求的最大回文串的字符数。 第一层循环是从第几个字符开始,第二层循环是截取到第几个字符(substring(start,end)方法中截取的字串不包含第end个,所以第二层循环为<=n)
4.方法isHuiWen()用来判断截取的字符串是否是回文字符串
5.如果是回文串,并且个数大于标记的最大个数,则赋值为最大数。
package zhongdeng;
public class SolutionNC17 {
public static void main(String[] args) {
System.out.println(getLongestPalindrome("abcbaddd",8));
}
public static int getLongestPalindrome(String A, int n) {
int max = 0;
for(int i = 0; i < n; i++){
for(int j = i + 1; j <= n; j++){
String str = A.substring(i, j);
if(isHuiWen(str) && max < str.length()){
max = str.length();
}
}
}
return max;
}
public static boolean isHuiWen(String str){
for(int i = 0; i < str.length(); i++){
if(str.charAt(i) != str.charAt(str.length()-1-i)){
return false;
}
}
return true;
}
}