zoukankan      html  css  js  c++  java
  • Longest Palindromic Substring——LeetCode

    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.

    题目大意:给一个字符串S,存在唯一的最长的回文子串,求这个回文子串。

    解题思路:首先这个题有O(n)的解,是在http://articles.leetcode.com/2011/11/longest-palindromic-substring-part-ii.html这里有详细的解释,本文的算法是O(n^2)的,中规中矩的做法。回文有两种,abba和aba,本文分别对子串以i为中心进行检查偶数和奇数哪个长,同时记录长度,下标,奇偶等信息。

    Talk is cheap>>

      public String longestPalindrome(String s) {
            if (s == null || s.length() <= 1) {
                return s;
            }
            int max_len = 0, pos = 0;
            boolean odd = false;
            for (int i = 0; i < s.length(); i++) {
                int forward = i - 1;
                int backward = i + 1;
                int len = 0;
                while (forward >= 0 && backward < s.length() && s.charAt(forward) == s.charAt(backward)) {
                    forward--;
                    backward++;
                    len++;
                }
                if (max_len < (len * 2 + 1)) {
                    max_len = len * 2 + 1;
                    odd = true;
                    pos = i;
                }
                len = 0;
                forward = i;
                backward = i + 1;
                while (forward >= 0 && backward < s.length() && s.charAt(forward) == s.charAt(backward)) {
                    forward--;
                    backward++;
                    len++;
                }
                if (max_len < len * 2) {
                    max_len = len * 2;
                    odd = false;
                    pos = i;
                }
            }
            if (odd) {
                return s.substring(pos - (max_len - 1) / 2, pos + (max_len - 1) / 2 + 1);
            }
            return s.substring(pos - max_len / 2 + 1, pos + max_len / 2 + 1);
        }
  • 相关阅读:
    [转发]UML类图符号 各种关系说明以及举例
    Promise 对象
    ES6基础(二)
    ES6基础
    JSON介绍
    Ajax的面试题
    Ajax请求
    jQuery从小白开始---初始jQuery
    常用的String原型
    JS之类数组
  • 原文地址:https://www.cnblogs.com/aboutblank/p/4401146.html
Copyright © 2011-2022 走看看