leetcode 第五题 Longest Palindromic Substring (java)

本文介绍了一种寻找字符串中最长回文子串的方法,并提供了一个通过暴力遍历实现的具体示例。该算法首先检查输入字符串长度是否为0或1的情况,然后遍历字符串以找出最长的回文子串。

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.

time=255ms    accepted 暴力遍历

public String longestPalindrome(String s){
        String result=null;
        int length=s.length();
        int max=0;
        if(length==0)
            return null;
        else if(length==1)
            return s;
        else{
            for(int i=1;i<length;i++){       
                boolean b=false;
                int k=0;
                int j=0;
                for(int m=i-1;m>=0&&m>=i-2;m--){
	                if(s.charAt(i)==s.charAt(m)){
	                    k=m-1;
	                    b=true;
	                    j=i+1;
	                    while(b&&k>=0&&j<length){                    	
	                        if(s.charAt(j)==s.charAt(k)){
	                            j++;
	                            k--;
	                        }else
	                            b=false;
	                    }	                   
	                    if(max<j-k-1){
	                        result=s.substring(k+1,j);
	                        max=j-k-1;
	                    }
	                }
                }
                if(j>=length)
                	break;
            }
            return result;
        }
        
    }



转载于:https://www.cnblogs.com/wennian/p/5036918.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值