首页 > 其他 > 详细

[LeetCode]-005-Longest Palindromic Substring

时间:2015-04-28 22:54:40      阅读:311      评论:0      收藏:0      [点我收藏+]

网址:https://leetcode.com/problems/longest-palindromic-substring/

题意:

找出最长回文字符串.

解法1:

自然是暴力枚举,把每一个元素从中间往左右遍历,如果是且是最长的存下字符串.

比如abccba.

定位元素是2->c.

找左1->b.不行

找右3->c.可以->找左右同时->找左右同时

找左右同时.不行

思路就是试3次,只要有可以的就试到底.

代码:

https://github.com/LiLane/leetcode/blob/master/java/005-LongestPalindromicSubstring-201504282020.java

https://github.com/LiLane/leetcode/blob/master/c%2B%2B/005-LongestPalindromicSubstring-201504282020.cpp

解法2:

动规,把两个下标(开始和结束)记录,这样就不用记录字符串,

先遍历距离0和1的所有子元素.

再根据flag[left+1][right-1]和s[left]==s[right]这种模式来判断是不是回文.

在这种情况,解法2并不比解法1更优.

但代码更加具有威力,

当逻辑更加复杂时,解法2一定比解法1更容易改动、优化、理解.

代码:

https://github.com/LiLane/leetcode/blob/master/java/005-LongestPalindromicSubstring-201504282100.java

https://github.com/LiLane/leetcode/blob/master/c%2B%2B/005-LongestPalindromicSubstring-201504282053.cpp

[LeetCode]-005-Longest Palindromic Substring

原文:http://blog.csdn.net/lane_l/article/details/45341029

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!