Longest Palindromic Substring2015年6月20日

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.

自己的解决方案;

public class Solution {
StringBuilder longest = new StringBuilder("");

public String longestPalindrome(String s) {
        String ss;
        int len = s.length();
        int max = 0;
        int sublen = 0;
        String result = "";
        for (int i = 0; i < len; i++) {
            for (int j = i + 1; j < len; j++) {
                ss = s.substring(i, j);
                int index = s.indexOf(reverse(ss),j-1);
                if (index == j - 1) {
                    sublen = 2 * (j - 1 - i) + 1;
                    if (sublen > max) {
                        max = sublen;
                        result = s.substring(i, max+i);
                    }
                    continue;
                } else if (index == j) {
                    sublen = 2 * (j - i);
                    if (sublen > max) {
                        max = sublen;
                        result = s.substring(i, max+i);
                    }
                    continue;
                } else {
                    continue;
                }
            }
        }

        return result;
    }

    public String reverse(String s) {
        StringBuilder sb = new StringBuilder(s);
        sb.reverse();
        return sb.toString();
    }
}

方法正确性是没有问题的,先挨个取子串,查找反串。但在LeetCode上会报超时错误。

参考讨论区的解答

public class Solution {
StringBuilder longest = new StringBuilder("");

public String longestPalindrome(String s) {
    if (s.length() <= 1) return s;

    for (int i = 0; i < s.length(); i++) {
        expand(s, longest, i, i); //odd
        expand(s, longest, i, i + 1); //even
    }

    return longest.toString();
}

private void expand(String s, StringBuilder longest, int i, int j) {
    while (i >= 0 && j < s.length()) {
        if (s.charAt(i) == s.charAt(j)) {
            if (j - i + 1 > longest.length()) {
                longest.delete(0, longest.length());
                longest.append(s.substring(i, j + 1));
            }
            i--;
            j++;
        }
        else
            break;
    }
}
}
时间: 2024-11-11 03:05:13

Longest Palindromic Substring2015年6月20日的相关文章

软考高项学员:2016年4月20日作业

软考高项学员:2016年4月20日作业 一.战略管理1.企业战略的特点有哪些?2.企业战略决策的特点有哪些?3.战略管理分为哪三步?(记)4.组织的使包括组织哲学和组织宗旨,请写下2者的定义.5.要确定一个组织的宗旨,首先做什么?(记)6.什么是长期目标,什么是短期目标?7.战略制订包括哪五个步骤?(记)8.战略分析中的外部分析有哪些?9.宏观趋势分析包括哪些?请列出名称,并简述之.10.行业分析包括哪些?11.五力模型认为,行业中的竞争包括哪五种基本的竞争力量?(记)(可以参看图20.1五力模

【公告】CSDN个人空间将于2014年4月20日全新改版上线

尊敬的用户: 你们好! CSDN个人空间将在2014年4月20日全新改版上线! CSDN个人空间是2008年8月推出的服务,致力于给广大用户提供在线技术分享和资料收藏的服务.此次改版将以全新的界面与大家见面. 新版个人空间此次改版目的: 1.用户个人信息(个人资料.技能等),统一展示,树立用户个人品牌形象. 2.作为全站个人服务的入口. 新版个人空间主要功能: - 展示CSDN用户的个人成就(比如:CSDN积分.专家认证.勋章,以及微软MVP等非CSDN授予的荣誉) - 同意CSDN用户编辑.展

中级学员:2015年10月20日作业

中级学员:2015年10月20日作业一.项目沟通管理:1.项目沟通管理包括哪些过程:2.沟通管理计划的主要内容:3.项目干系人管理的方法(12.6.2)二.项目合同管理:4.无效合同的五条:5.总价合同的特征,及签订前提条件:6.合同质量.履行地点.履行期限.履行费用不明确的,分别如何处理:7.合同管理的主要内容包括哪四条:8."公平合理"是合同变更的处理原则,变更合同价款按哪些方法进行:9.项目索培的程序,包括哪六步. 最晚提交时间:下次上课前. 提交方法:同学们按照要求完成作业,并

【每日圣经日历】2014年9月20日

Samedi le 20 Septembre 2014 礼拜六 2014年9月20日 Le coeur est tortueux par-dessus tout, et il est méchant: Qui peut le connatre? Moi, l'ternel, j'éprouve le coeur, je sonde les reins, Pour rendre à chacun selon ses voies, Selon le fruit de ses oeuvres.    

2017年最新(4月20日)手机号码归属地数据库分享

2017年最新(4月20日)手机号码归属地数据库下载 手机号段数据库 号码归属地数据库  移动号段 联通号段 电信号段 147号段 170号段(虚拟运营商) 权威  全面  准确  规范字段包括 省份 城市 运营商 邮编 区号 等信息,对于数据分析.号码归属地查询等非常有帮助 更新历史: 2017年4月最新版手机号段归属地,也叫手机归属地数据库  共360569条记录,三种格式:MYSQL,MSSQL,access MDB格式 字段:手机号码前7位,省份,城市,区号,运营商,邮编 末尾如下: 3

06月20日【迅雷王】已更新可用迅雷会员80个

关注迅雷王迅雷王博客中的所有迅雷账号由Python程序自动验证可用后发送到Blog中供大家免费享用,如果很快被查封可以扫描微信二维码免费领取每日专享迅雷VIP账号! [迅雷王Blog]ID:xunleiaccount 按[Ctrl + D]收藏 [迅雷王]迅雷账号_迅雷王坚持在博客园至少每天更新10个可用迅雷账号!06月20日[迅雷王]已更新可用迅雷会员80个 [迅雷王迅雷钻石会员] 594cja:2 [密码] 046135 [迅雷王迅雷钻石会员]825270734:2[密码]9779959 [

8月20日全球六大国际域名解析量变化情况统计报告

IDC评述网(idcps.com)08月24日报道:根据DailyChanges公布的实时数据显示,在2015年8月20日,全球六大国际域名解析量总量持续增至153,722,200个,环比上期,净增102,588个,涨幅约增大80%,幅度明显.其中,.COM..NET与.ORG的解析量稳居前三,且环比纷纷实现上涨.接下来,请与IDC共同关注全球六大国际域名解析量变化情况. (图1)全球六大国际域名解析量变化统计分布图 如图1所示,在8月20日,全球六大国际域名解析量变化统计分布中,.COM的表现

4月20日全球六大国际域名解析量:.COM增势最强劲

IDC评述网(idcps.com)04月22日报道:根据DailyChanges公布的实时数据显示,截至2016年4月20日,全球六大国际域名解析总量增至163,173,459个,与上期3月30日对比,共净增332,993个.其中,域名解析量实现上涨的依旧是.COM..NET与.INFO. (图1)全球六大国际域名解析量变化统计分布图 观察图1,可知在2016年4月20日全球六大国际域名市场上,.COM表现最为活跃,解析量变化幅度尤为明显,单是转移的域名解析量便超过14万,遥遥领先.其他五大国际

10月20日全球域名商解析新增量TOP15:万网第三

IDC评述网(idcps.com)10月23日报道:根据DailyChanges公布的最新数据显示,在2015年10月20日,全球域名解析新增量十五强大战中,DOMAINCONTROL.COM凭借29,619个新增量拔得头筹,遥遥领先众多域名商.易名中国.中国万网分列2.3名,相比上期,排名两两互换,新增量依次为11,736个.10,993个.接下来,请看IDC评述网对相关数据进行整理与分析. (图1)全球域名解析商(国际域名)解析新增量Top15分布图 从图1中可了解到,在10月20日,全球域