Leetcode 3291. Minimum Number of Valid Strings to Form Target I

devtools/2024/9/22 14:53:21/
  • Leetcode 3291. Minimum Number of Valid Strings to Form Target I
    • 1. 解题思路
    • 2. 代码实现
  • 题目链接:3291. Minimum Number of Valid Strings to Form Target I

1. 解题思路

这一题第一反应就是用一个字典树+动态规划的方式,倒是也搞定了,不过对于下一题就搞不定了,感觉还是得进一步优化一下,不过对这道题倒是也算ok了。

2. 代码实现

给出python代码实现如下:

class Trie:def __init__(self):self.trie = {}def add_word(self, word):trie = self.triefor c in word:trie = trie.setdefault(c, {})trie["eos"] = ""def find(self, word):trie = self.triefor c in word:if c not in trie:return Falsetrie = trie[c]return "eos" in trieclass Solution:def minValidStrings(self, words: List[str], target: str) -> int:trie = Trie()for w in words:trie.add_word(w)n = len(target)@lru_cache(None)def dp(idx):if idx >= n:return 0_trie = trie.trieans = math.infwhile idx < n and target[idx] in _trie:_trie = _trie[target[idx]]idx += 1ans = min(ans, 1+dp(idx))return ansans = dp(0)return ans if ans != math.inf else -1

提交代码评测得到:耗时12771ms,占用内存41.8MB。


http://www.ppmy.cn/devtools/112906.html

相关文章

Spring6学习笔记4:事务

1 JdbcTemplate 1.1 简介 Spring 框架对 JDBC 进行封装&#xff0c;使用 JdbcTemplate 方便实现对数据库操作 准备工作 ①搭建子模块 搭建子模块&#xff1a;spring-jdbc-tx ②加入依赖 <dependencies><!--spring jdbc Spring 持久化层支持jar包--><dep…

拥有一个你说了算的人生—觉知

觉知&#xff0c;是最大的容器 觉知的力量 觉知&#xff0c;必然意味着对自身的了解&#xff0c;并且还会伴随着深刻的体验 觉知是光&#xff0c;而没有被觉知之物&#xff0c;就藏在黑暗中。一旦有觉知之光照进来&#xff0c;黑暗不仅无所遁形&#xff0c;而且黑暗中的动力还…

浅谈C#之抽象类和抽象函数

一、基本介绍 抽象类和抽象方法是用来表示那些不完整、不能实例化的概念&#xff0c;通常用于定义一个接口或规范&#xff0c;让继承它的子类去实现具体的功能。 抽象类&#xff08;Abstract Class&#xff09; 抽象类不能被实例化。抽象类可以包含抽象方法和非抽象方…

VS2019配置TIFF

1.下载 Index of /libtiff/ (osgeo.org) 2.配置 3.使用 4.测试程序 #include <iostream> #include <cstdint> // 包含 stdint.h 头文件 #include "tiffio.h"int main() {std::cout << "Hello World!\n";// 打开一个 TIFF 文件const ch…

基于HTML5的下拉刷新效果

基于HTML5的下拉刷新效果 效果示例图示例代码 效果示例图 示例代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewport&quo…

MySql的基础讲解

一、初识MySql 数据库&#xff1a;按照数据结构来组织、存储和管理数据的仓库&#xff1b;是一个长期存储在计算机内的、有组织的、可共享 的、统一管理的大量数据的集合&#xff1b; OLTP&#xff1a;联机事务处理&#xff0c;主要是对数据库的增删改查。 OLTP 主要用来记录…

‌内网穿透技术‌总结

内网穿透是一种网络技术&#xff0c;通过它可以使外部网络用户访问内部网络中的设备和服务。一般情况下&#xff0c;内网是无法直接访问的&#xff0c;因为它位于一个封闭的局域网中&#xff0c;无法从外部访问。而通过内网穿透&#xff0c;可以将内部网络中的设备和服务暴露在…

【移动端】Flutter与uni-app:全方位对比分析

文章目录 一、含义1. Flutter2. uni-app 二、开发程序步骤1. Flutter2. uni-app 三、基本语言区别四、优缺点1. Flutter2. uni-app优点&#xff1a;缺点&#xff1a; 五、如何选型 一、含义 1. Flutter Flutter是由Google开发的一款跨平台移动应用开发框架&#xff0c;采用Da…