LeetCode---5. Longest Palindromic Substring
来源:互联网 发布:喜迎油价上涨知乎 编辑:程序博客网 时间:2024/05/14 08:03
Description:
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”分析:
从其中一个字符开始,左右向外扩展得到一个更长的子串,看是否是回文子串,如果是回文子串, 则继续向外遍历,直到遇到非回文子串或者超出子串范围。此方法的时间复杂度O(N^2);但是需要 注意针对一个字符向外扩张时,需要同时偶数字符个数回文子串和奇数字符个数回文子串两种情况。
class Solution {public: string longestPalindrome(string s) { //边界条件 if (s.size() <= 1) { return s; } string ret; int start = 0, end = 0; for (int i = 1; i < s.size(); ++i) { // 偶数回文遍历的方式,abba这类回文从中心向两边遍历 start = i - 1; end = i; while (start >= 0 && end < s.size() && s[start] == s[end]) { --start; ++end; } int paliStart = start + 1, paliEnd = end - 1; int paliLen = paliEnd - paliStart + 1; if (paliLen > ret.size()) { ret = s.substr(paliStart, paliLen); } // 奇数回文遍历方式 abcba这种方式,中心点start=i-1, end = i+1 start = i - 1; end = i + 1; while (start >= 0 && end < s.size() && s[start] == s[end]) { --start; ++end; } paliStart = start + 1; paliEnd = end - 1; paliLen = paliEnd - paliStart + 1; if (paliLen > ret.size()) { ret = s.substr(paliStart, paliLen); } } return ret; }};
阅读全文
0 0
- LeetCode 5. Longest Palindromic Substring
- LeetCode --- 5. Longest Palindromic Substring
- LeetCode 5.Longest Palindromic Substring
- [Leetcode] 5. Longest Palindromic Substring
- [LeetCode]5.Longest Palindromic Substring
- [leetcode] 5. Longest Palindromic Substring
- LeetCode-5. Longest Palindromic Substring
- leetcode 5. Longest Palindromic Substring
- leetcode 5. Longest Palindromic Substring
- Leetcode 5. Longest Palindromic Substring
- LeetCode 5. Longest Palindromic Substring
- Leetcode 5. Longest Palindromic Substring
- leetcode 5. Longest Palindromic Substring
- LeetCode-5. Longest Palindromic Substring
- Leetcode 5. Longest Palindromic Substring
- leetcode 5. Longest Palindromic Substring
- LeetCode *** 5. Longest Palindromic Substring
- 【leetcode】5. Longest Palindromic Substring
- kettle抽取mongodb数据库遇到的问题
- iOS 各种修饰符的区别汇总
- NAT打洞
- Linux安装Tomcat外部不能访问
- Redis 命令精要--哈希表
- LeetCode---5. Longest Palindromic Substring
- go开源项目整理-新手篇
- js页面代码的跳转
- jsp页面中<%@ %>、<%! %>、<% %>、<%= %>的意思
- 系统加电时最初1M内存分布
- python3 tolist函数 其他形式(数组或者矩阵等)转为列表形式
- html里面怎么展示绝对路径的图片
- 1025. 反转链表 (25)
- 【Chrome-crx】键盘模拟鼠标点击网页按钮