题解 | #最长回文子串#

最长回文子串

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;
	}
}
全部评论

相关推荐

1 收藏 评论
分享
牛客网
牛客企业服务