LeetCode Longest Palindromic Substring(最长回文子串)

来源:互联网 发布:中银淘宝校园卡注销 编辑:程序博客网 时间:2024/05/16 14:00
public class Solution {    public String longestPalindrome(String s) {        int len = s.length();        if (len <= 1) return s;        boolean[][] table = new boolean[len][len];                for (int i = 0; i < len; i++) {            table[i][i] = true;        }        String longestStr = null;        int maxLen = 0;                for (int i = 0; i < len - 1; i++) {            if (s.charAt(i) == s.charAt(i + 1)) {                table[i][i + 1] = true;                longestStr = s.substring(i, i + 2);            }        }                               for (int l = 3; l <= len; l++) {            for (int i = 0; i <= len - l; i++) {                int j = i + l - 1;                if (s.charAt(i) == s.charAt(j)) {                    table[i][j] = table[i + 1][j - 1];                    if (table[i][j] && l > maxLen) {                        maxLen = l;                        longestStr = s.substring(i, j + 1);                    }                } else {                    table[i][j] = false;                }            }        }                return longestStr;    }}

0 0
原创粉丝点击