博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[LeetCode]97.Interleaving String
阅读量:5731 次
发布时间:2019-06-18

本文共 1811 字,大约阅读时间需要 6 分钟。

题目

Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2.

For example,

Given:
s1 = “aabcc”,
s2 = “dbbca”,

When s3 = “aadbbcbcac”, return true.

When s3 = “aadbbbaccc”, return false.

思路

设dp[i][j],表示s1[0,i-1]和s2[0,j-1]交替组成s3[0, i+j-1]。

如果s1[i-1]等于s3[i+j-1],则dp[i][j]=dp[i-1][j];
如果s2[j-1]等于s3[i+j-1],则dp[i][j]=dp[i][j-1]。

因此状态转移方程如下:

dp[i][j] = dp[i-1][j] && (s1[i-1] == s3[i+j-1]) || dp[i][j-1] && (s2[j-1] == s3[i+j-1])

代码

/*------------------------------------------------*   日期:2015-03-25*   作者:SJF0115*   题目: 97.Interleaving String*   来源:https://leetcode.com/problems/interleaving-string/*   结果:AC*   来源:LeetCode*   博客:------------------------------------------------------*/#include 
#include
using namespace std;class Solution {public: bool isInterleave(string s1, string s2, string s3) { int size1 = s1.size(); int size2 = s2.size(); int size3 = s3.size(); if(size1 + size2 < size3){ return false; }//if vector
> dp(size1 + 1,vector
(size2 + 1, false)); dp[0][0] = true; // 初始化 for(int i = 1;i <= size1;++i){ dp[i][0] = dp[i-1][0] && (s1[i-1] == s3[i-1]); }//for for(int i = 1;i <= size2;++i){ dp[0][i] = dp[0][i-1] && (s2[i-1] == s3[i-1]); }//for for(int i = 1;i <= size1;++i){ for(int j = 1;j <= size2;++j){ dp[i][j] = dp[i-1][j] && (s1[i-1] == s3[i+j-1]) || dp[i][j-1] && (s2[j-1] == s3[i+j-1]); }//for }//for return dp[size1][size2]; }};int main() { Solution solution; string str1("aabcc"); string str2("dbbca"); string str3("aadbbbaccc"); cout<
<

运行时间

这里写图片描述

你可能感兴趣的文章
有力证据
查看>>
二叉树前序中序后序遍历的非递归方法
查看>>
nginx+tomcat实现负载均衡
查看>>
mysql 行转列列转行
查看>>
《设计模式系列》---桥接模式
查看>>
[Unity3d]Shader 着色器 学习前了解知识
查看>>
Linux中文件颜色所代表的属性和颜色
查看>>
Redrain duilib中事件委托存在的问题
查看>>
43、我的C#学习笔记9
查看>>
网站建表实践及优化
查看>>
字符串的简单操作
查看>>
C#新功能--命名参数与可选参数
查看>>
构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(22)-权限管理系统-模块导航制作...
查看>>
strtok和strtok_r
查看>>
维辰超市:借助云商城成功转型新零售
查看>>
[Linux]Web性能测试http_load
查看>>
Airbnb 宣布放弃使用 React Native,回归使用原生技术
查看>>
中外RFID技术差异何在?
查看>>
codeforces B. The Meeting Place Cannot Be Changed【二分】
查看>>
文章相似度比较
查看>>