网址:https://leetcode.com/problems/longest-palindromic-substring/
题意:
找出最长回文字符串.
解法1:
自然是暴力枚举,把每一个元素从中间往左右遍历,如果是且是最长的存下字符串.
比如abccba.
定位元素是2->c.
找左1->b.不行
找右3->c.可以->找左右同时->找左右同时
找左右同时.不行
思路就是试3次,只要有可以的就试到底.
代码:
解法2:
动规,把两个下标(开始和结束)记录,这样就不用记录字符串,
先遍历距离0和1的所有子元素.
再根据flag[left+1][right-1]和s[left]==s[right]这种模式来判断是不是回文.
在这种情况,解法2并不比解法1更优.
但代码更加具有威力,
当逻辑更加复杂时,解法2一定比解法1更容易改动、优化、理解.
代码:
时间: 2024-10-07 16:09:09