给你一个字符串 s,找到 s 中最长的回文子串。
class Solution {
public:
string longestPalindrome(string s) {
if(s.empty())
return "";
int length = s.size();
if(length == 1)
return s;
vector dp(length, vector(length, false));
string result = "";
for(int i = length - 1; i >= 0; i--)
for(int j = i; j = result.size())
result = s.substr(i, j - i + 1);
}
return result;
}
};
经验: 1、问题拆分为两个部分,一部分是如何确定这个子字符串是回文,另一个问题是考虑长度。拆分开来西靠比较容易解决,并且由于回文字符串的性质可知,同时考虑两边添加元素远比一边添加元素要来的容易。 2、注意:本题DP解法中,遍历顺序是十分考究的,只有解法中的一边++一边–才能够按照要求的顺序更新。 3、C++中二维数组的创建十分容易, vector dp(m, vector(n, a))表示的是初始化一个m行n列的,初始值为a的二维数组。
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 问总共有多少条不同的路径?
class Solution {
public:
int uniquePaths(int m, int n) {
vector dp(m, vector(n, 0));
for(int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?