【leetcode】【5】Longest Palindromic Substring
2016-02-27 10:08
525 查看
一、问题描述
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.
二、问题分析
该题求的是字符串中的最常回文子串。本质上还是字符串的遍历问题。既然是回文串,那么在求的过程中可以采用从中间往两边扩散的方法。需要注意的是在扩散之前我们需要选取中心点(分析会发现中心点中的字符是相同的)。时间复杂度为O(n2)。三、Java AC代码
public String longestPalindrome(String s) {if (s == null || s.length() <= 2) {
return s;
}
int min = 0, max = 0;
char[] str = s.toCharArray();
for (int i = 1; i < s.length(); i++) {
int start = 0, end = 0;
int tmp = i;
int tmp2 = i;
while (--tmp >= 0 && str[tmp] == str[i])
;
while (++tmp2 < s.length() && str[tmp2] == str[i])
;
start = tmp;
end = tmp2;
while (start >= 0 && end < s.length()) {
if (str[start] == str[end]) {
start--;
end++;
} else {
break;
}
}
start++;
end--;
if (end - start > max - min) {
min = start;
max = end;
}
i = tmp2 - 1;
}
return s.substring(min, max + 1);
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android之获取手机上的图片和视频缩略图thumbnails
- android string.xml文件中的整型和string型代替
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序