zoukankan      html  css  js  c++  java
  • 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.

    解答:

     1 public class Solution {
     2 
     3     public String longestPalindrome(String s) {
     4         int start = 0;
     5         int end = 0;
     6 
     7 
     8         //对于找回文字串的问题,就要以每一个字符为中心,像两边扩散来寻找回文串
     9         //这个算法的时间复杂度是O(n*n),可以通过OJ
    10         //就是要注意奇偶情况,由于回文串的长度可奇可偶,比如"bob"是奇数形式的回文,"noon"就是偶数形式的回文,两种形式的回文都要搜索,对于奇数形式的,我们就从遍历到的位置为中心,向两边进行扩散,对于偶数情况,我们就把当前位置和下一个位置当作偶数行回文的最中间两个字符,然后向两边进行搜索
    11         for(int i = 0; i < s.length(); i++) {
    12             int len1 = expandAroundCenter(s, i, i);
    13             int len2 = expandAroundCenter(s, i, i+1);
    14             int len = Math.max(len1, len2);
    15             if(len > end - start) {
    16                 start = i - (len - 1) / 2;
    17                 end = i + len / 2;
    18             }
    19         }
    20 
    21         return s.substring(start, end+1);
    22     }
    23 
    24     private int expandAroundCenter(String s, int left, int right) {
    25         int L = left;
    26         int R = right;
    27         while(L >= 0 && R < s.length() && s.charAt(L) == s.charAt(R)) {
    28             L--;
    29             R++;
    30         }
    31 
    32         return R-L-1;
    33     }
    34 }
  • 相关阅读:
    在 XD 和 Axure 中使用 iconfont
    chartjs 曲线图 纪要
    js ajax 等的的一些纪要
    程序员的方向
    sqlserver 常用的练习50例子
    (function(){})()原理
    layer弹出层详解
    sqlserver 表值函数 保存使用
    关于批量下载线程池与信号机制的使用
    tp5.1 phpstudy composer 配置等
  • 原文地址:https://www.cnblogs.com/wylwyl/p/10397127.html
Copyright © 2011-2022 走看看