LeetCode题解之Longest Palindromic Substring

1、题目描述

2、问题分析

计算每个字符所组成的字符串的回文子串。

3、代码

 1 string longestPalindrome(string s) {
 2         
 3         int maxL = 0;
 4         int index = 0;
 5         bool is_odd = false ;
 6         string res ;
 7         if( s.size() == 0){
 8             return res;
 9         }
10         
11         for( int i = 0; i < s.size() ; i++){
12             int n_odd = countLenOfPra(s ,i, i);
13             int n_even = countLenOfPra(s, i ,i+1);
14             
15             if(n_odd > maxL ){
16                 maxL = n_odd;
17                 index = i;
18                 is_odd = true;
19             }
20             if(n_even > maxL){
21                 maxL = n_even;
22                 index = i;
23                 is_odd = false;
24             }
25         }
26         
27         if( is_odd ){
28             res = subPralid(s, index , index);
29         }else{
30             res = subPralid(s, index , index+1);
31         }        
32         return res;
33     }
34     
35     
36     
37     int countLenOfPra(string s ,int l ,int r){
38         
39         while( l >=0 && r < s.size() && s[l] == s[r]){
40             l--;
41             r++;
42         }
43         int len = r-l+1;
44         
45         return len;
46     }
47     
48     string subPralid(string s ,int l , int r){
49         string rs ;
50         while(l >= 0 && r < s.size() && s[l] == s[r]){
51             l--;
52             r++;
53         }
54         l += 1;
55         r -= 1;
56         rs = s.substr(l,r-l+1);
57         return rs;
58     }

猜你喜欢

转载自www.cnblogs.com/wangxiaoyong/p/9579636.html