leetcode 最长回文子字符串 II

leetcode 最长回文子字符串 II


题目描述:找到最长回文子字符串,并输出该字符串
代码

    public String longestPalindrome(String s) {
    	int n = s.length();
    	String ret = "";
    	boolean[][] dp = new boolean[n][n];
    	int start = 0;
    	int end = 0;
    	for (int i = n-1; i >= 0; i--) {
			dp[i][i] = true;
			for (int j = i; j < n; j++) {
				if(s.charAt(i) == s.charAt(j)) {
					dp[i][j] = true&&(j-i<3||dp[i+1][j-1]);
				}
				else {
					dp[i][j] = false;
				}
				if(dp[i][j] && j-i+1>=end-start) {
					start = i;
					end = j+1;
				}
	
			}
		}
    	ret = s.substring(start, end);
    	for (int i = 0; i < dp.length; i++) {
			System.out.println(Arrays.toString(dp[i]));
		}
    	return ret;
    }
发布了28 篇原创文章 · 获赞 0 · 访问量 252

猜你喜欢

转载自blog.csdn.net/zy450271923/article/details/105301325