Longest Palindromic Substring

来源:互联网 发布:黄渤的唱功 知乎 编辑:程序博客网 时间:2024/05/21 11:35

Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.

求最长回文字串,传说有o(n)解法 但我的也能过,

public class Solution {    public String longestPalindrome(String s) {        if (s.isEmpty()) {return null;}if (s.length() == 1) {return s;}String longest = s.substring(0, 1);for (int i = 0; i < s.length(); i++) {// get longest palindrome with center of iString tmp = helper(s, i, i);if (tmp.length() > longest.length()) {longest = tmp;}// get longest palindrome with center of i, i+1tmp = helper(s, i, i + 1);if (tmp.length() > longest.length()) {longest = tmp;}}return longest;}// Given a center, either one letter or two letter,// Find longest palindromepublic static String helper(String s, int begin, int end) {while (begin >= 0 && end <= s.length() - 1&& s.charAt(begin) == s.charAt(end)) {begin--;end++;}String subS = s.substring(begin + 1, end);return subS;}    }

0 0