[LeetCode]-algorithms-Longest Palindromic Substring
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.
要求:给定一个字符串,求最长的回文字符串
"a"
=>a
"runcodes"
=>r
"runcodestatus"
=>tat
"runcodestats"
=>stats
public String longestPalindrome(String s) { s = s.trim(); if(null==s || "".equals(s)) return null; String res = s.substring(0,1); String temp; for(int i=0; i<s.length()-1; i++){ temp = search(s, i, i); if(temp.length()>res.length()) res = temp; temp = search(s, i, i+1); if(temp.length()>res.length()) res = temp; } return res; } //这个方法向 i 的两端发散 public String search(String s,int begin,int end){ while(begin>=0 && end<s.length() && (s.charAt(begin)==s.charAt(end))){ begin--; end++; } return s.substring((begin+1),end); }
分析:以每个字符为中心,遍历前后的字符串