Longest Palindromic Substring--求字符串最长回文子串
来源:互联网 发布:淘宝问卷调查报告 编辑:程序博客网 时间:2024/06/05 03:48
Question: Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.
Example:
Input: "babad"Output: "bab"Note: "aba" is also a valid answer.
Example:
Input: "cbbd"Output: "bb"
所谓回文结构即:
a-b-c-b-a true
a-b-c-a-a false
基本的想法是遍历所有的回文的支点范围从第一个字符的字符串的字符串的最后一个字符的。使用StringBuilder来降低空间复杂度。(考虑偶数与奇数长度的情况--我们也可以在每个字符中间插入特殊字符如# 来保证整个字符串回文子串始终为奇数情况。如#a#b#b#a#)
public class Solution { public String longestPalindrome(String s) {StringBuilder longest = new StringBuilder(""); if (s.length() <= 1) return s; StringBuilder str = new StringBuilder(); for (int i = 0; i < s.length(); i++) { str.append("#"); str.append(s.charAt(i)); } str.append("#"); s = str.toString(); for (int i = 0; i < s.length(); i++) { expand(str.toString(), longest, i, i); } s = longest.toString().replaceAll("#", ""); return s;}private static 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; }}}
0 0
- Longest Palindromic Substring--求字符串最长回文子串
- 5. Longest Palindromic Substring(求最长回文子字符串)
- Longest Palindromic Substring(最长回文子字符串)
- 求最长回文子串(Longest Palindromic Substring)
- LeetCode-5 Longest Palindromic Substring(求最长回文子串)
- LeetCode_5---Longest Palindromic Substring (求最长回文子串)
- 【字符串】最长回文子串Longest Palindromic Substring
- Longest Palindromic Substring 最长回文子串
- Longest Palindromic Substring-----最长回文子串
- longest palindromic substring(最长回文子串)
- 最长回文子串 Longest Palindromic Substring
- Longest Palindromic Substring 最长回文子串
- 最长回文子串(Longest Palindromic Substring)
- Longest Palindromic Substring 最长回文子串
- 最长回文子串 Longest Palindromic Substring
- Longest Palindromic Substring 最长回文子串
- Longest Palindromic Substring 最长回文子串
- LeetCode - 5 Longest Palindromic Substring 最长回文子字符串
- [多线程学习]2017.02.21
- 【ZIP格式分析】 文件名乱码
- FastJson的简单使用
- 如何判断当前界面是否属于某个apk,或具体到某个Activity
- ASM 翻译系列第四弹:高级知识kfed元数据编辑器
- Longest Palindromic Substring--求字符串最长回文子串
- android使用startActivityForResult跳转Activity并回传值
- pfx证书提取公私钥的方法
- oracle之数据类型number分析
- 给Java程序猿们推荐一些值得一看的好书
- 使用BigDecimal原生方法stripTrailingZeros实现末尾去0
- 数据结构实验之查找四:二分查找
- Spring注解@Component和@resource的使用
- CSS3的REM设置字体大小