leetcode 第5题 Longest Palindromic Substring
2017-12-18 19:11
399 查看
第5题 Longest Palindromic Substring
参考网址(github): https://github.com/cy-hello/leetcode_005
一 题目:
Longest Palindromic Substring(最长回文字符子串)
二题目要求:
给定一个字符串,找出最长回文字符子串,给定的字符串长度不超过1000
三 题目分析:
/*
** 回文字符串:左右2边以中间字符为中心对称的字符串
**
** 方法:跟上一题有相似之处 2个指针,用一个指针指向中心的字符,向左右2边移动,根据回文的奇偶性来分2类
*/
四 编写代码:
五 提交结果:
击败了73.78的C++代码,如图:
参考网址(github): https://github.com/cy-hello/leetcode_005
一 题目:
Longest Palindromic Substring(最长回文字符子串)
二题目要求:
给定一个字符串,找出最长回文字符子串,给定的字符串长度不超过1000
三 题目分析:
/*
** 回文字符串:左右2边以中间字符为中心对称的字符串
**
** 方法:跟上一题有相似之处 2个指针,用一个指针指向中心的字符,向左右2边移动,根据回文的奇偶性来分2类
*/
四 编写代码:
class Solution { public: string longestPalindrome(string s) { /* 对传进来的字符串进行条件筛选 长度不能是空和小于1也不能大于1000 */ if ( s.size() <= 1 ) { return s; } if ( s.size() > 1000 ) { return NULL; } /* 初始化变量和赋值 */ int string_left = 0; int string_right = 0; int length_longest_substring = 0; int string_length = s.size(); string Longest_Palindromic_Substring; /* 主题函数 */ for(int i = 1;i < string_length;i++) { /* 寻找以i为中心的奇数长度的回文 比如:aa,bb型的 */ string_left = i - 1; string_right = i + 1; while((string_left >= 0) && (string_right < string_length) && (s[string_left] == s[string_right])) string_left--, string_right++; if ( length_longest_substring < string_right - string_left -1 ) { length_longest_substring = string_right - string_left -1; Longest_Palindromic_Substring = s.substr(string_left+1, length_longest_substring); } /* 以i-1,i为中点偶数长度的回文子串 比如:aba,bab型的 */ string_left = i-1; string_right = i; while((string_left >= 0) && (string_right < string_length) && (s[string_left] == s[string_right])) string_left--, string_right++; if ( length_longest_substring < string_right - string_left -1 ) { length_longest_substring = string_right - string_left -1; Longest_Palindromic_Substring = s.substr(string_left+1, length_longest_substring); } } return Longest_Palindromic_Substring; } };
五 提交结果:
击败了73.78的C++代码,如图:
相关文章推荐
- leetcode第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(C)
- [leetcode]Longest Palindromic Substring
- [LeetCode]题解(python):005-Longest Palindromic Substring
- [Leetcode] Longest Palindromic Substring
- Leetcode: Longest Palindromic Substring. java
- [leetcode 5] Longest Palindromic Substring
- LeetCode题解——Longest Palindromic Substring
- [Leetcode]解题文档-Longest Palindromic Substring
- Leetcode 5. Longest Palindromic Substring(字符串)
- LeetCode--5. Longest Palindromic Substring
- LeetCode: Longest Palindromic Substring
- Leetcode: Longest Palindromic Substring
- LeetCode 之 5 ---- Longest Palindromic Substring
- leetcode005:Longest Palindromic Substring