动态规划 Leetcode 139 单词拆分

单词拆分

Leetcode 139

学习记录自代码随想录

要点在注释中详细说明,注意迭代公式中是dp[i]不是dp[j-i]

#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <stdlib.h>bool wordBreak(char* s, char** wordDict, int wordDictSize) {// 1.dp[j]代表背包容量为字符串s的长度j时是否可以利用字典中单词拼接为字符串s,dp[j]为true和false,bool dp[strlen(s)+1];memset(dp, false, sizeof(dp));// 2.递推公式,if(j到i之间的字符串在wordDict中 && dp[j-i]为true) 则dp[j]为true// 3.dp数组初始化,dp[0] = true;dp[0] = true;// 4.遍历顺序,本题中字符串组合顺序不能改变所以实际上是排列问题,所以先遍历背包,再遍历物品for(int j = 0; j < strlen(s)+1; j++){for(int i = 0; i < j; i++){int length = j - i;char sub_str[length+1];strncpy(sub_str, s+i, length);sub_str[length] = '\0';for(int k = 0; k < wordDictSize; k++){if((strcmp(wordDict[k], sub_str) == 0) && dp[i]){dp[j] = true;}}}}// 5.举例推导dp数组return dp[strlen(s)];
}int main(){int n;scanf("%d", &n);while(n){char s[301];scanf("%s", &s);int wordDictSize;scanf("%d", &wordDictSize);char** wordDict = (char**)malloc((wordDictSize) * sizeof(char*));for(int i = 0; i < wordDictSize; i++){wordDict[i] = (char*)malloc(21 * sizeof(char));scanf("%s", wordDict[i]);}bool result = wordBreak(s, wordDict, wordDictSize);printf("%d", result);for(int i = 0; i < wordDictSize; i++){free(wordDict[i]);}free(wordDict);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/754883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java基础经典10道题

目录 for循环的嵌套 题目一: 求101到200之间的素数的个数,并打印 代码分析: 注意点: 题目二:开发验证码 代码分析: 题目三:数组元素的复制 代码分析: 题目四:评委打分 健壮版代码: 代码分析:看源码 注意点: 题目五:数字加密 优化版代码: 代码分析: 题目六:数字…

SpringCloud Sleuth 分布式请求链路跟踪

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第十篇&#xff0c;即介绍 Sleuth 分布式请求链路跟踪。 二、概述 2.1 出现的原因 在微服务框架中&…

万界星空科技WMS仓储管理包含哪些具体内容?

wms仓库管理是通过入库业务、出库业务、仓库调拨、库存调拨和虚仓管理等功能&#xff0c;综合批次管理、物料对应、库存盘点、质检管理、虚仓管理和即时库存管理等功能综合运用的管理系统&#xff0c;有效控制并跟踪仓库业务的物流和成本管理全过程&#xff0c;实现完善的企业仓…

XR虚拟拍摄助力短剧制作:探索未来影视新纪元

XR虚拟拍摄助力短剧制作&#xff1a;探索未来影视新纪元 在数字化浪潮的推动下&#xff0c;短剧拍摄行业正经历着一场前所未有的技术革新。其中&#xff0c;XR&#xff08;扩展现实&#xff09;虚拟拍摄技术的崛起&#xff0c;不仅为短剧制作提供了更为广阔的创作空间&#xff…

从WAF到WAAP的研究

对于需要保护Web应用程序和API的企业来说&#xff0c;从WAF到WAAP的转变已成为一种必然趋势。采用WAAP平台可以更为全面和高效地保护Web应用程序和API的安全&#xff0c;同时避免了高昂的维护成本和攻击绕过WAF的风险。 网络安全领域的发展趋势是从WAF到WAAP的转变。WAF作为传…

如何利用IP地址分析风险和保障网络安全

随着网络攻击的不断增加和演变&#xff0c;保障网络安全已经成为了企业和组织不可忽视的重要任务。在这样的背景下&#xff0c;利用IP地址分析风险和建立IP风险画像标签成为了一种有效的手段。本文将深入探讨IP风险画像标签的作用以及如何利用它来保障网络安全。 IP风险画像查…

一键制作iOS上架App Store描述文件教程

摘要 本篇博文详细介绍了在iOS上架过程中所需的基础项目&#xff0c;包括IOS生产环境证书、APPID包名制作以及APP的描述文件。通过使用appuploader进行证书制作和上传IPA到App Store&#xff0c;能够快速掌握真机测试和上架流程。 引言 在iOS应用开发过程中&#xff0c;正确…

PHP反序列化--引用

一、引用的理解&#xff1a; 引用就是给予一个变量一个恒定的别名。 int a 10; int b &a; a 20; cout<<a<<b<<endl; 输出结果 : a20、b20 二、靶场复现&#xff1a; <?php highlight_file(__FILE__); error_reporting(0); include("flag.p…

android 顺滑滑动嵌套布局

1. 背景 最近项目中用到了上面的布局&#xff0c;于是使用了scrollviewrecycleview&#xff0c;为了自适应高度&#xff0c;重写了recycleview&#xff0c;实现了高度自适应&#xff1a; public class CustomRecyclerView extends RecyclerView {public CustomRecyclerView(Non…

【HTTP】面试题整理

HTTP&#xff1a;什么是队头阻塞以及怎么解决&#xff1f; 队头阻塞&#xff08;Head-of-Line Blocking&#xff09; 计算机网络中的一个概念&#xff0c;特别是在处理HTTP请求时。当多个HTTP请求被发送到一个服务器&#xff0c;并且这些请求被放置在一个队列中等待处理时&…

c# 除法运算 ;/运算符;%运算符

1.c# 除法运算 &#xff0c;且保留小数 (13*1.0f) / 6 结果 2.1666666666666665 2.C# 保留小数位数的方法 转自&#xff1a;https://www.cnblogs.com/abeam/p/8406054.html 前言 本文主要介绍 C# 中实现小数位数的保留&#xff0c;完成对小数位数四舍五入的几种方法。 1.…

iview 不请求接口修改table本地数据 不刷新的本质问题以及最简单的解决方法

在日常的开发中&#xff0c;相信大家都遇到过这样的问题&#xff0c;通过请求接口&#xff0c;而后赋值table数据&#xff0c;页面都是正常的刷新渲染的&#xff0c;但是有时&#xff0c;不需要请求接口&#xff0c;只修改本地的固定数据的话&#xff0c;页面的table表格数据却…

2024年旅游经济与文化传播国际会议(ICTECC 2024)

2024年旅游经济与文化传播国际会议&#xff08;ICTECC 2024&#xff09; 2024 International Conference on Tourism Economy and Cultural Communication 会议简介&#xff1a; 旅游经济与文化传播之间存在密切的关系。旅游经济是以旅游活动为依托&#xff0c;通过旅游资源…

【每日力扣】 修剪二叉搜索树与复原 IP 地址

&#x1f525; 个人主页: 黑洞晓威 &#x1f600;你不必等到非常厉害&#xff0c;才敢开始&#xff0c;你需要开始&#xff0c;才会变的非常厉害。 669. 修剪二叉搜索树 给你二叉搜索树的根节点 root &#xff0c;同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树&am…

Git 仓库瘦身与 LFS 大文件存储

熟悉 Git 的小伙伴应该都知道随着 Git 仓库维护的时间越来越久&#xff0c;追踪的文件越来越多&#xff0c;git 存储的 objects 数量会极其庞大&#xff0c;每次从远程仓库 git clone 的时候都会墨迹很久。如果我们不小心 git add 了一个体积很大的文件&#xff0c;且 git push…

Linux和Windows类似的命令

以下是一些常用的Linux命令&#xff0c;它们类似于Windows的cmd命令&#xff1a; Windows cmd 命令 对应的 Linux 命令 dir ls cd cd copy cp del rm mkdir mkdir rmdir …

Linux系统(四)- 进程初识 | 环境变量 | 进程地址空间

~~~~ 前言冯诺依曼体系结构&#xff08;重要&#xff09;总览CPU工作方式什么是指令集&#xff1f;CPU为什么只和内存打交道&#xff08;数据交换&#xff09;&#xff1f;木桶效应&#xff1a;在数据层面的结论程序运行为什么要加载到内存&#xff1f; 进一步理解计算机体系结…

MySQL—数据库导入篇

什么是数据库&#xff1f; 数据库是干啥的&#xff1f; 数据库&#xff08;Database&#xff09;是按照数据结构来组织、存储和管理数据的仓库。 MySQL属于哪一类数据库&#xff1f; MySQL是一种关系型数据库。所谓的关系型数据库&#xff0c;是建立在关系模型基础上的数据库&a…

java项目打包(maven+原生)

一、maven打jar包 1.1 没有第三方依赖的jar java -jar maven项目打包提示.jar中没有主清单属性 <build><finalName>${project.artifactId}</finalName><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifact…

Cesium:绘制一个 3DTiles 对象的外包盒顶点

作者:CSDN @ _乐多_ 本文将介绍如何使用 Cesium 引擎根据模型的中心坐标,半轴信息,绘制一个 3DTiles 对象的外包盒顶点。 外包盒是一个定向包围盒(Oriented Bounding Box),它由一个中心点(center)和一个包含半轴(halfAxes)组成。半轴由一个3x3的矩阵表示,这个矩阵…