首页 > 其他 > 详细

5. Longest Palindromic Substring

时间:2016-08-09 18:48:31      阅读:153      评论:0      收藏:0      [点我收藏+]

这道题的关键点在于,对于字符串的赋值操作要谨慎,尽量采用记录下标的方式,而不是整个字符串的赋值,这样可以节省时间。

public class Solution {
    public String longestPalindrome(String s) {
        String res="";
        int size=s.length();
        int maxLen=0;
        int maxLeft=0;
        int maxRight=0;
        
        
        
        //奇数长度的回文串
        for(int i=0;i<size;i++)
        {
            String temp="";
            int len=1;
            temp+=s.charAt(i);
            int left=i-1;
            int right=i+1;
            while(left>=0&&right<size)
            {
                if(s.charAt(left)==s.charAt(right))
                {
                    //这种写法太耗时间
                    //temp=s.charAt(left)+temp;
                    //temp=temp+s.charAt(right);
                    len+=2;
                    left--;
                    right++;
                    
                }
                else
                    break;
            }
            if(len>maxLen)
            {
                maxLen=len;
                maxLeft=left;
                maxRight=right;
            }
        }
        
        //偶数长度的回文串
        for(int i=0;i<size;i++)
        {
            String temp="";
            int len=0;
            int left=i;
            int right=i+1;
            while(left>=0&&right<size)
            {
                if(s.charAt(left)==s.charAt(right))
                {
                    //每次都进行一个新的字符串的创建,太消耗时间,这里只需要记录
                    //子串的下标即可
//                    temp=s.charAt(left)+temp;
//                    temp=temp+s.charAt(right);
                    len+=2;
                    left--;
                    right++;
                }
                else
                    break;
            }
            if(len>maxLen)
            {
                //记录下最长子串的首尾即可
                maxLen=len;
                maxLeft=left;
                maxRight=right;
            }
        }
        res=s.substring(maxLeft+1, maxRight);
        return res;
        
    }
}

 

5. Longest Palindromic Substring

原文:http://www.cnblogs.com/aguai1992/p/5754242.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!