首页 > 其他 > 详细

LeetCode Longest Palindromic Substring

时间:2015-10-29 23:31:23      阅读:427      评论:0      收藏:0      [点我收藏+]

原题链接在这里:https://leetcode.com/problems/longest-palindromic-substring/

对每一个子字符串的中心开始向左右延展,直到不是回文为止,同时更新最大长度。

子字符串的中心可以是一个字符,整个字符串有奇数个字符;也可以是两个字符中间的空隙,整个字符串有偶数个字符。

Note: longest辅助函数在左右延展时,跳出while loop时,i 和 j 指向的要么是out of index bound, 要么指向的字符已经不想等了。所以最后返回的最常字符串应该是substring(i+1,j)这一段,

j 指向的 字符并没有包括在最后结果中。

AC Java:

 1 public class Solution {
 2     public String longestPalindrome(String s) {
 3         if(s == null || s.length() == 0){
 4             return s;
 5         }
 6         String res = s.substring(0,1);
 7         for(int i = 0; i<s.length(); i++){
 8             //string with odd characters
 9             String str = longest(s, i, i);
10             if(str.length() > res.length()){
11                 res = str;
12             }
13             //string with even characters
14             str = longest(s, i, i+1);
15             if(str.length() > res.length()){
16                 res = str;
17             }
18         }
19         return res;
20     }
21     
22     private String longest(String s, int i, int j){
23         while(i>=0 && j<s.length() && s.charAt(i) == s.charAt(j)){
24             i--;
25             j++;
26         }
27         return s.substring(i+1,j); //error
28     }
29 }

 

LeetCode Longest Palindromic Substring

原文:http://www.cnblogs.com/Dylan-Java-NYC/p/4921988.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!