zoukankan      html  css  js  c++  java
  • leetcode: Longest Palindromic Substring

    http://oj.leetcode.com/problems/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.

    思路

    这题有牛B的算法,大家可以自己Google。这里用一种比较简单的算法,虽然不够快但是也能过OJ。如果一个字符串已经是回文字符串,向左右扩展,如果两个新增加的字母相同,那么扩展后的字符串也是回文。奇数偶数情况分别处理即可。

     1 class Solution {
     2 public:
     3     int extend(const string &s, int start, int end) {
     4         int len = s.length(), steps = 0;
     5         
     6         while ((start >= 0) && (end < len)) {
     7             if (s[start] == s[end]) {
     8                 --start;
     9                 ++end;
    10                 ++steps;
    11             }
    12             else {
    13                 break;
    14             }
    15         }
    16         
    17         return steps;
    18     }
    19     
    20     string longestPalindrome(string s) {
    21         int start = 0, max = 0;
    22         
    23         for (int i = 0; i < s.length(); ++i) {
    24             int steps, sub_len;
    25             
    26             steps = extend(s, i, i + 1);
    27             sub_len = steps * 2;
    28             
    29             if (sub_len > max) {
    30                 start = i - steps + 1;
    31                 max = sub_len;
    32             }
    33             
    34             steps = extend(s, i - 1, i + 1);
    35             sub_len = steps * 2 + 1;
    36             
    37             if (sub_len > max) {
    38                 start = i - steps;
    39                 max = sub_len;
    40             }
    41         }
    42         
    43         return s.substr(start, max);
    44     }
    45 };
  • 相关阅读:
    浅谈常量
    运算符
    TTL与CMOS门电路
    16位CRC校验_Delphi
    DXP快捷键记录(红色为经常用到的)
    论EFMS模拟量部分采集电路的修改
    稳压二极管应用电路_转载
    TVS二极管
    TryEnterCriticalSection___Delphi
    很好用的一个翻译插件
  • 原文地址:https://www.cnblogs.com/panda_lin/p/longest_palindromic_substring.html
Copyright © 2011-2022 走看看