最长回文子串_1528
2015-05-29 16:59
309 查看
题目描述:
回文串就是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。
回文子串,顾名思义,即字符串中满足回文性质的子串。
给出一个只由小写英文字符a,b,c...x,y,z组成的字符串,请输出其中最长的回文子串的长度。
输入:
输入包含多个测试用例,每组测试用例输入一行由小写英文字符a,b,c...x,y,z组成的字符串,字符串的长度不大于200000。
输出:
对于每组测试用例,输出一个整数,表示该组测试用例的字符串中所包含的的最长回文子串的长度。
样例输入:
样例输出:
来源:
腾讯2013年实习生招聘二面面试题
回文串就是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。
回文子串,顾名思义,即字符串中满足回文性质的子串。
给出一个只由小写英文字符a,b,c...x,y,z组成的字符串,请输出其中最长的回文子串的长度。
输入:
输入包含多个测试用例,每组测试用例输入一行由小写英文字符a,b,c...x,y,z组成的字符串,字符串的长度不大于200000。
输出:
对于每组测试用例,输出一个整数,表示该组测试用例的字符串中所包含的的最长回文子串的长度。
样例输入:
abab bbbb abba
样例输出:
3 4 4
来源:
腾讯2013年实习生招聘二面面试题
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner scan = new Scanner(System.in); while(scan.hasNext()){ String str = scan.next(); System.out.println(getStr(str).length()); } } public static String getStr(String str){ if(str == null) return null; if(str.length() == 1) return str; String longStr = ""; for(int i = 0; i < str.length(); i++){ String tmp = helper(str,i,i); if(tmp.length() > longStr.length()) longStr = tmp; tmp = helper(str,i,i+1); if(tmp.length() > longStr.length()) longStr = tmp; } return longStr; } public static String helper(String s, int begin, int end){ while(begin>=0 && end<s.length() && s.charAt(begin)==s.charAt(end)){ begin--; end++; } return s.substring(begin + 1, end); } }
相关文章推荐
- asp.net文件下载
- SQL约束
- SQL查询语句练习
- 多校+CF简单题
- SQL Server 存储过程
- sql语句的细节优化
- linux 下crontab -e 命令创建定时任务
- Java 与中文字体
- 7lession-基础数据使用介绍
- ZOJ 3872--解题报告
- openstack 之 freebsd镜像制作
- 收集系统性能数据并通过gnuplot绘图
- JBoss中发布EJB 并编写Client
- Hadoop云计算实战
- GPG入门
- redis主从复制
- Oracle数据库PLSQL的中文乱码显示全是问号
- JSONResult引用某博客
- 父类的引用指向子类的对象或者接口指向实现类均是可以的
- 《Java程序设计》第一次作业:源代码计算器 目标二