Longest Palindromic Substring
来源:互联网 发布:淘宝产品商标注册 编辑:程序博客网 时间:2024/06/06 03:07
题目描述
解题思路
题目要求从一个字符串s的子字符串中找到一个最长的回文字符串,那么解题思路显而易见,1是要求子字符串是回文字符串,2是要求该字符串是最长的。
回文字符串有个显然的特征是沿着中心那个字符轴对称。所以对于每个字符串我们只需要从中心向两端展开,观察两端的字符是否相同即可判断是否为回文字符串,而最长这一点,我们可以设置个变量longest,每次遍历完一个子字符串都与longest做比较。这样时间复杂度就是O(n^2)。
c++代码实现
class Solution {public: string Palindrome(string s, int left, int right) { int length = s.length(); while (left >= 0 && right < length && s[left] == s[right]) { left--; right++; } return s.substr(left + 1, right - left -1); } string longestPalindrome(string s) { int n = s.length(); if (n == 0) return ""; string longest = s.substr(0, 1); for (int i = 0; i < n-1; ++i) { string s1 = Palindrome(s, i, i); if (s1.length() > longest.length()) longest = s1; string s2 = Palindrome(s, i, i+1); if (s2.length() > longest.length()) longest = s2; } return longest; }};
运行结果:
反思与总结
此题难度一般,但凡设计到回文字符串,一般都会采用我上面的解题思路,但这里阐述了更为简洁的做法,不得不佩服其境界之高!
阅读全文
0 0
- LeetCode: Longest Palindromic Substring
- LeetCode Longest Palindromic Substring
- LeetCode: Longest Palindromic Substring
- [Leetcode] Longest Palindromic Substring
- Longest Palindromic substring
- [LeetCode] Longest Palindromic Substring
- LeetCode5:Longest Palindromic Substring
- Leetcode : Longest Palindromic Substring
- Longest Palindromic Substring
- Longest Palindromic Substring
- [LeetCode]Longest Palindromic Substring
- leetcode Longest Palindromic Substring
- Longest Palindromic Substring
- LeetCode-Longest Palindromic Substring
- Longest Palindromic Substring
- Longest Palindromic Substring
- [LeetCode] Longest Palindromic Substring
- Longest Palindromic Substring leetcode
- MYSQL的COMMIT和ROLLBACK
- java.io.FileNotFoundException
- Linux下安装Java(JDK8)Tomcat
- MySQL学习及常见问题的解决
- 第一个CSDN博客
- Longest Palindromic Substring
- JDK版本新特性
- Android ContentProvider的线程安全(一)
- 如何在js中判断是否包含某个字符串
- CCF认证训练行动路线图
- python eval函数
- 搭建pgpool+流复制
- 在ubuntu16.04搭建Qt4.8.6嵌入式开发环境
- Python学习-Python数据类型