• [LeetCode] 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.

    用一个指针从0遍历到s.size()-1,从里向外来检测子串是否是回文,分两种情况:1)bab, 2)bb。也就是当前指针可能指向的是奇数回文,也可能是偶数回文。做两次检测。

     1 class Solution {
     2 public:
     3     string findPal(string &s, int left, int right)
     4     {
     5         if (left < 0)
     6             return s.substr(left+1, 1);
     7             
     8         if (right >= s.size())
     9             return s.substr(right-1, 1);
    10             
    11         while(0 <= left && right < s.size())
    12         {
    13             if (s[left] != s[right])
    14                 break;
    15             left--;
    16             right++;
    17         }
    18         
    19         left++;
    20         right--;
    21         
    22         return s.substr(left, right - left + 1);        
    23     }
    24     
    25     string longestPalindrome(string s) {
    26         // Start typing your C/C++ solution below
    27         // DO NOT write int main() function
    28         if (s.size() == 0)
    29             return "";
    30             
    31         string ret;
    32         
    33         for(int i = 0; i < s.size(); i++)
    34         {
    35             string str = findPal(s, i - 1, i + 1);
    36             if (str.size() > ret.size())
    37                 ret = str;
    38                 
    39             str = findPal(s, i, i + 1);
    40             if (str.size() > ret.size())
    41                 ret = str;
    42         }
    43         
    44         return ret;
    45     }
    46 };

     

  • 相关阅读:
    【JZOJ4743】积木【状压dp】
    学生增删改查练习
    Java关键字
    集合基本知识
    简单模拟用户登录
    遍历输入的字符串
    字符串截取
    equals与equalsIgnoreCase
    StringBuilder成员方法
    StringBuilder
  • 原文地址:https://www.cnblogs.com/chkkch/p/2766494.html
Copyright © 2020-2023  润新知