leetcode题解-5. Longest Palindromic Substring
来源:互联网 发布:棉先生衣服怎么样 知乎 编辑:程序博客网 时间:2024/05/30 04:53
题意:求一个字符串的最长回文子串。
这道题是比较常考的题目,求回文子串,一般每个子串的中心向两边同时进行扫描,直到不是回文串为止。同时要注意回文子串的奇偶情况,由于回文串的长度可奇可偶,比如”bob”是奇数形式的回文,”noon”就是偶数形式的回文,两种形式的回文都要搜索。
对于每个中心往两边扫描的复杂度为O(n),所以整体时间复杂度为O((2*n-1)*n)=O(n^2),空间复杂度为O(1)。
class Solution { public String longestPalindrome(String str) { int len = str.length(); if(len == 0) return ""; if(len == 1) return str; String longest = str.substring(0, 1); for (int i = 0; i < str.length(); i++) { // get longest palindrome with center of i String tmp = longestSub(str, i, i); if (tmp.length() > longest.length()) { longest = tmp; } // get longest palindrome with center of i, i+1 tmp = longestSub(str, i, i + 1); if (tmp.length() > longest.length()) { longest = tmp; } } return longest; } public String longestSub(String s, int begin, int end){ while (begin >= 0 && end <= s.length() - 1 && s.charAt(begin) == s.charAt(end)) { begin--; end++; } return s.substring(begin + 1, end); } public static void main(String[] args) { Solution sl = new Solution(); String str = "babad"; System.out.println(sl.longestPalindrome(str)); }}
阅读全文
0 0
- LeetCode题解-5. Longest Palindromic Substring
- LeetCode Algorithms 5. Longest Palindromic Substring 题解
- 5. Longest Palindromic Substring LeetCode题解
- LeetCode题解系列--5. Longest Palindromic Substring
- Leetcode题解-5. Longest Palindromic Substring
- leetcode题解-5. Longest Palindromic Substring
- LeetCode题解:Longest Palindromic Substring
- LeetCode - Longest Palindromic Substring 题解
- LeetCode题解:Longest Palindromic Substring
- leetcode题解-647. Palindromic Substrings && 5. Longest Palindromic Substring
- 5. Longest Palindromic Substring 题解
- Leetcode题解(Python): 5. Longest Palindromic Substring
- 题解——Leetcode 5. Longest Palindromic Substring 难度:Medium
- LeetCode 题解(67): Longest Palindromic Substring
- LeetCode题解——Longest Palindromic Substring
- LeetCode题解-5-Longest Palindromic Substring
- LeetCode题解(Golang实现)--Longest Palindromic Substring
- LeetCode 5. Longest Palindromic Substring
- WebService
- 关于分库分表?
- SpringBoot32-springboot开发部署与测试-云部署,基于Docker的部署
- 如何封装一个简单的Android关机接口
- 数组中只出现一次的数字
- leetcode题解-5. Longest Palindromic Substring
- 宏一定要用大写
- OI中C++常数问题及其优化
- 字符串左旋
- 简明矩阵的还原
- c# 教程
- poi导出数据
- C++取得系统时间方法
- 慕课网学习项目之答答租车系统