5. Longest Palindromic Substring

把每个位置分成odd和even两种情况 两个指针分别向两边查找,看看最长的palindrome在哪里 这样复杂度比较低 全部遍历的话 timelimit exceed

 

 

 1 class Solution {
 2     int max = 0;
 3     int lo = 0;
 4     public String longestPalindrome(String s) {
 5         if(s == "") return s;
 6         if(s.length() < 2) return s;
 7         int a = 0, b = 0;
 8         for(int i = 0; i < s.length(); i++) {
 9             extendPalin(s, i, i);
10             extendPalin(s, i, i+1);
11             
12             
13         }
14         return s.substring(lo, lo + max);
15         
16     }
17     
18     public void extendPalin(String s, int i, int j) {
19         while(i >= 0 && j < s.length() && s.charAt(i) == s.charAt(j)) {
20             i--;
21             j++;
22         }
23         if(max < (j - i - 1)) {
24             max = j - i - 1;
25             lo = i + 1;    
26         }
27     }
28     
29 }

 

posted @ 2018-08-28 21:05  jasoncool1  阅读(100)  评论(0编辑  收藏  举报