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

    1. Title

    Longest Palindromic Substring

    2. Http address

    https://leetcode.com/problems/longest-palindromic-substring/

    3. The question

    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.

    4. My code (AC)

     1     // Accepted
     2     public static String longestPalindrome(String s) {
     3          
     4         if ( s == null)
     5             return s;
     6         int len = s.length();
     7         if ( len <= 1)
     8             return s;
     9         boolean isPalindrome[][] = new boolean[len][len];
    10         int start = 0;
    11         int maxLen = 0;
    12         for(int i = 0 ; i < len; i++)
    13         {
    14             isPalindrome[i][i] = true;
    15             start = i;
    16             maxLen = 1;
    17         }
    18         
    19         for(int i = 0 ; i < len - 1; i++)
    20         {
    21             if ( s.charAt(i) == s.charAt(i+1)){
    22                 isPalindrome[i][i+1] = true;
    23                 start = i;
    24                 maxLen = 2;
    25             }
    26         }
    27         
    28         for( int i = len - 3; i >=0 ; i--)
    29         {
    30             for( int j = i + 2; j < len; j++)
    31             {
    32                 if( s.charAt(i) == s.charAt(j) && isPalindrome[i+1][j-1])
    33                 {
    34                     isPalindrome[i][j] = true;
    35                     if ( maxLen < (j - i + 1))
    36                     {
    37                         start = i;
    38                         maxLen = j - i + 1;
    39                     }
    40                 }
    41             }
    42         }
    43         for( int i = 0 ; i < len ; i++)
    44         {
    45             System.out.println();
    46             for( int j = 0 ; j < len ; j++)
    47             {
    48                 System.out.print(" " + isPalindrome[i][j]);
    49             }
    50             System.out.println();
    51         }
    52         System.out.println(start);
    53         System.out.println(maxLen);
    54         return s.substring(start, start + maxLen);
    55     }
  • 相关阅读:
    15 手写数字识别-小数据集
    14 深度学习-卷积
    13-垃圾邮件分类2
    12.朴素贝叶斯-垃圾邮件分类
    11.分类与监督学习,朴素贝叶斯分类算法
    9、主成分分析
    8、特征选择
    大数据应用技术课程实践--选题与实践方案
    手写数字识别-小数据集
    深度学习-卷积
  • 原文地址:https://www.cnblogs.com/ordili/p/4970034.html
Copyright © 2011-2022 走看看