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

    Brutal Force: O(n^2)

    public class Solution {
        public String longestPalindrome(String s) {
            String maxPal="";
            for(int i=0;i<s.length();i++)
            {
                String str1=lenofPal(i, i, s);
                if(str1.length()>maxPal.length())
                    maxPal=str1;
                String str2=lenofPal(i, i+1, s);
                if(str2.length()>maxPal.length())
                    maxPal=str2;
            }
            return maxPal;
        }
        private String lenofPal(int l, int r, String s)
        {
            while(l>=0&&r<s.length()&&s.charAt(l)==s.charAt(r))
            {
                l--;
                r++;
            }
            return s.substring(l+1,r);
        }
    }

     

    Manacher: O(n)

    public class Solution {
        public String longestPalindrome(String s) {
            char[] arr=new char[s.length()*2+1];
            for(int i=0;i<arr.length;i++)
            {
                if(i%2==0)
                    arr[i]='#';
                else
                    arr[i]=s.charAt(i/2);
            }
            
            int[] len=new int[arr.length];
            int po=0;
            int mx=0;
            String ret="";
            for(int i=0;i<arr.length;i++)
            {
                if(mx>i)
                    len[i]=Math.min(mx-i, len[2*po-i]);
                else
                    len[i]=1;
                while(i-len[i]>=0&&i+len[i]<arr.length&&arr[i-len[i]]==arr[i+len[i]])
                    len[i]++;
                if(i+len[i]>mx)
                {
                    mx=i+len[i];
                    po=i;
                }
                if(len[i]-1>ret.length())
                    ret=s.substring((i-len[i]+1)/2,(i+len[i]-1)/2);
            }
            return ret;
        }
    }
  • 相关阅读:
    创建Java项目报错处理
    samba服务器的安装及配置
    如何给Ubuntu 安装Vmware Tools
    Ubuntu切换至root用户
    网络打印机的配置
    tigervnc*
    163镜像地址
    浅谈数据库的完整性
    Android之获取本地图片并压缩方法
    网址收藏
  • 原文地址:https://www.cnblogs.com/asuran/p/7568701.html
Copyright © 2011-2022 走看看