力扣 2707.字符串中的额外字符(动态规划)

力扣 2707.字符串中的额外字符

动态规划

f[0] = 0;
s字符串长度为n,求f[n]
f[n] = ((f[n - 1] + 1) < f[j : n]) ? (f[n - 1] + 1) : f[j : n];  (其中 j <= n)
其中f[j : n]为字符串第j位到第n位,这里需要满足f[j : n]为字典中所出现的字符串
因此,可以通过起始f[0]以及动态规划的思想,可以推导出f[n],即为字符串中最少得额外字符
注:在求f[n]的时候,需要判断所有的f[j : n]是否在字典中出现,及每一个字典中的字符串都需要判断一下,从而求得最小值f[n]

代码.cpp

class Solution {
public:int minExtraChar(string s, vector<string>& dictionary) {int f[52] = {0};for (int i = 0; i < 52; i++) {f[i] = 100;}f[0] = 0;for (int i = 1; i <= s.length(); i++) {string str = s.substr(0, i);for (int j = 0; j < dictionary.size(); j++) {if (dictionary[j].length() <= str.length()) {string strData =str.substr(str.length() - dictionary[j].length(),dictionary[j].length());if (strData == dictionary[j]) {if (f[i] > f[i - strData.length()]) {f[i] = f[i - strData.length()];}}}}if (f[i] > f[i - 1] + 1) {f[i] = f[i - 1] + 1;}if (f[i] == 100) {f[i] = f[i - 1] + 1;}}return f[s.length()];}
};

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

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

相关文章

Linux进阶命令使用

在 Linux 中&#xff0c;除了常用的基础命令&#xff0c;有一系列进阶命令可以帮助用户更有效地管理系统和执行复杂的任务。以下是一些常见的 Linux 进阶命令及其用法&#xff1a; 文本处理 grep&#xff1a;搜索文本并打印匹配的行。 grep pattern filenameawk&#xff1a;用…

Fancy

专门记录一点思维题。 1. 反转与双端队列&#xff1a;LC 2810 故障键盘 这题是个easy&#xff0c;但用StringBuilder强行模拟反转就没意思了。 可以这么想&#xff0c;当打出一个i&#xff0c;代表一个控制信号&#xff0c;反转。 一开始我们向队列尾部&#xff08;屏幕上的…

SpringMVC 学习博客记录

文章目录 Servlet请求转发和请求包含RequestDispatcher HandlerInterceptor组件实际运用场景 HandlerMapping&RequestMappingInfo(HandlerMapping)HandlerExecutionChainHandlerAdapter源码学习知识点博客记录 Servlet请求转发和请求包含 RequestDispatcher Request#getR…

文件上传进阶绕过技巧(一)和靶场实战

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性&#xff0c;仅供安全研究与学习之用&#xff0c;读者将信息做其他用途&#xff0c;由Ta承担全部法律及连带责任&#xff0c;文章作者不承担任何法律及连带责任。 0、环境准备 请移步《文件上传靶场实战&#xff1a;upl…

数据库的数据会存到文件中

数据库的数据会存到文件中。文件就是操作系统对磁盘block的映射。 文件/块在开头有元数据&#xff0c;包含eof的位置&#xff0c;recode的数量&#xff0c;每个recode的长度。 聚集索引和数据放在一起&#xff0c;索引就是数据主键。 而非聚集索引在另一个地址中单独存储&…

从零学Java 泛型

Java 泛型 文章目录 Java 泛型1 什么是泛型?2 泛型类3 泛型接口4 泛型方法5 泛型集合 Collection 工具类 1 什么是泛型? Java泛型是JDK1.5中引入的一个新特性&#xff0c;其本质是参数化类型&#xff0c;把类型作为参数传递。 常见形式有泛型类、泛型接口、泛型方法。 语法…

SPI接口协议

SPI接口协议 SPI(Serial Peripheral Interface)是由Motorola公司定义的接口协议标准&#xff0c;串行外设接口(SPI)是微控制器和外围IC&#xff08;如传感器、 ADC、 DAC、移位寄存器、 SRAM等&#xff09;之间使用最广泛的接口之一。SPI是一种同步、全双工、主从式接口&#x…

你了解计算机网络的发展历史吗?

1.什么是计算机网络 计算机网络是指将一群具有独立功能的计算机通过通信设备以及传输媒体被互联起来的&#xff0c;在通信软件的支持下&#xff0c;实现计算机间资源共享、信息交换或协同工作的系统。计算机网络是计算机技术与通信技术紧密结合的产物&#xff0c;两者的迅速发展…

Lua调用dll(C#)的代码示例

以下是一个简单的示例&#xff0c;演示如何在Lua中调用.NET Framework的DLL。请注意&#xff0c;这个示例假设你已经安装了Lua和.NET Framework&#xff0c;并且有一个名为"MyDll.dll"的.NET DLL。 首先&#xff0c;创建一个名为"MyDll.cs"的C#文件&#…

11853 - Paintball (UVA)

题目链接如下&#xff1a; Online Judge 这道题挺可惜&#xff0c;我思路其实就差了一点点没想出来&#xff0c;还是看了uva 11853 paintball&#xff08;好题&#xff09;——yhx_yhx. live-CSDN博客 这里的文字部分才最终写出来。 dfs版本代码如下&#xff1a; #include …

C++系列十五:字符串

字符串 1 、创建和初始化C字符串2. C字符串的常用操作3. C字符串处理函数4. C字符串在实际开发中的应用 C中的字符串是由字符组成的序列。字符串常用于处理文本数据&#xff0c;例如用户输入、文件内容等。C标准库提供了一个名为std::string的类&#xff0c;用于表示和处理字符…

递归——简单粗暴的问题解决方式

相信很多人在刚接触算法时都在递归上栽过跟头&#xff08;包括我&#xff09;&#xff0c;但是在掌握了这项技能后会有种豁然开朗的感觉&#xff01; 我用我自己&#xff01; 怎么会有这么优雅而又简单粗暴的解决问题的方法&#xff01; \color{red}{怎么会有这么优雅而又简单…

爬虫之牛刀小试(三):爬取中国天气网全国天气

天气网&#xff1a; import requests from bs4 import BeautifulSoup import time from pyecharts.charts import Bar from pyecharts import options as optsurl_hb http://www.weather.com.cn/textFC/hb.shtml url_db http://www.weather.com.cn/textFC/db.shtml url_hd …

Java SE入门及基础(6)

运算符 1.常规运算符&#xff08; - * /&#xff09; 示例 /** * 运算符操作 - * / */ public class Example2 { public static void main ( String [] args ) { //变量在使用之前必须完成初始化操作。换言之就是给变量赋值。 // int a, b; // a 5; // b …

跨境电商之店群模式:Shopee店群是什么?卖家如何做好店群?

今天跟大家谈一谈越来越火爆的店群模式&#xff0c;现在大部分做跨境电商的卖家都会建立自己的店群&#xff0c;其中很多做 Shopee的卖家时常会听到一个名词“ Shopee 店群模式”&#xff0c;但很多人都不知道怎么去做&#xff0c;或者在犹豫要不要做&#xff0c;所以东哥我会从…

mac上cmake编译的库A,给其他库B使用报错ld64.lld: error

ld64.lld: error xxxx.a(xxx.c.o) has version 13.5.0, which is newer than target minimum of 10.11.0 根本原因&#xff1a; 在mac上编译库B时&#xff0c;macosx-version-min为10.11&#xff0c;即macosx sdk的最低版本 所以要求cmake编译的库A也应该指定macosx-version-…

谈谈Spring Bean

一、IoC 容器 IoC 容器是 Spring 的核心&#xff0c;Spring 通过 IoC 容器来管理对象的实例化和初始化&#xff08;这些对象就是 Spring Bean&#xff09;&#xff0c;以及对象从创建到销毁的整个生命周期。也就是管理对象和依赖&#xff0c;以及依赖的注入等等。 Spring 提供…

【Web】CTFSHOW PHP文件包含刷题记录(全)

温故知新。 目录 web78 web79 web80 web81 web82 web83 web84 web85 web86 web87 web88 web78 伪协议base64编码直接读出文件内容就行 ?filephp://filter/convert.base64-encode/resourceflag.php web79 一眼data伪协议包含php脚本 ?filedata://text/plain,<…

算法初学者指南:理解排序算法

前言 排序是计算机科学中的基本问题之一&#xff0c;也是数据处理的核心步骤。从最简单的个人项目到复杂的工业级应用&#xff0c;排序都扮演着关键角色。本文将介绍四种常见的排序算法&#xff1a;冒泡排序、插入排序、快速排序和堆排序&#xff0c;旨在帮助算法初学者理解这些…

Netty-Netty组件了解

EventLoop 和 EventLoopGroup 回想一下我们在 NIO 中是如何处理我们关心的事件的&#xff1f;在一个 while 循环中 select 出事 件&#xff0c;然后依次处理每种事件。我们可以把它称为事件循环&#xff0c;这就是 EventLoop 。 interface io.netty.channel. EventLoo…