赞
踩
题目
解法
①暴力法 -> 用两个循环, 判断每个字串是否是回文的, 如果是, 再判断长度, 最后保存下来.
②二维数组, 字符串 + 循环
class Solution { public String longestPalindrome(String s) { int len = s.length(); String ret = ""; boolean[][] dp = new boolean[len][len]; for(int L = 0; L < len; L++){ // L + 1就是子串长度 for(int i = 0; i + L < len; i++){ int j = i + L; if(L == 0){ dp[i][j] = true; } else if(L == 1){ if(s.charAt(i) == s.charAt(j)){ dp[i][j] = true; } } else{ if(s.charAt(i) == s.charAt(j) && dp[i+1][j-1]){ dp[i][j] = true; } } if(dp[i][j] && L + 1 > ret.length()){ ret = s.substring(i, j + 1); } } } return ret; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。