115.不同的子序列(困难)

115.不同的子序列

力扣题目链接(opens new window)

给定一个字符串 s 和一个字符串 t ,计算在 s 的子序列中 t 出现的个数。

字符串的一个 子序列 是指,通过删除一些(也可以不删除)字符且不干扰剩余字符相对位置所组成的新字符串。(例如,"ACE" 是 "ABCDE" 的一个子序列,而 "AEC" 不是)

题目数据保证答案符合 32 位带符号整数范围。

115.不同的子序列示例

提示:

  • 0 <= s.length, t.length <= 1000
  • s 和 t 由英文字母组成

思路

把dp[i][j]定义为以t的第i个元素结尾的字串(即t[0:i+1])在s字符串中出现几次,

状态转化方程是:
 

if s[j] == t[i]:dp[i][j] = dp[i-1][j-1] + dp[i][j-1]
else:dp[i][j] = dp[i][j-1]

class Solution(object):def numDistinct(self, s, t):""":type s: str:type t: str:rtype: int"""dp = [[0]*len(s) for _ in range(len(t))]if s[0] == t[0]:dp[0][0] = 1for j in range(1, len(s)):if s[j] == t[0]:dp[0][j] = dp[0][j-1] + 1else:dp[0][j] = dp[0][j-1]for i in range(1, len(t)):for j in range(i, len(s)):if s[j] == t[i]:dp[i][j] = dp[i-1][j-1] + dp[i][j-1]else:dp[i][j] = dp[i][j-1]return dp[-1][-1]

 

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

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

相关文章

【学习笔记】【AI医生】2-4 项目详细分析及DeepSeek适用场景

【DeepSeek AI 医生】2-4 项目详细分析及DeepSeek适用场景 1.1 项目流程图1.2 主流AI模型对比1.3 DeepSeek使用途径1.4 DeepSeek 适用场景 1.1 项目流程图 1.2 主流AI模型对比 1.3 DeepSeek使用途径 官网 https://chat.deepseek.com/线上Api &#xff08;目前不可以状态&#…

再聊 Flutter Riverpod ,注解模式下的 Riverpod 有什么特别之处,还有发展方向

三年前我们通过 《Flutter Riverpod 全面深入解析》 深入理解了 riverpod 的内部实现&#xff0c;而时隔三年之后&#xff0c;如今Riverpod 的主流模式已经是注解&#xff0c;那今天就让我们来聊聊 riverpod 的注解有什么特殊之处。 前言 在此之前&#xff0c;我们需要先回忆…

Java【多线程】(3)单例模式与线程安全

目录 1.前言 2.正文 2.1线程安全类 2.2杂谈&#xff08;介绍几个概念&#xff09; 2.2.1内存可见性 2.2.2指令重排序 2.2.3线程饥饿 1. 什么是线程饥饿&#xff1f; 2. 线程饥饿的常见原因 2.2.4区分wait和sleep 2.4单例模式 2.4.1饿汉模式 2.4.2懒汉模式 2.4.2指…

4g串口发短信踩坑

这短短的4行有三种发送方式 1 勾选新行 2 不选新行 3 不选新行&#xff0c;再勾选16进制&#xff0c;完美解决 推荐网站AIR780 MINI LTE 4G全网通模块 — wiki

STM32 ——系统架构

3个被动单元 SRAM 存储程序运行时用到的变量 Flash&#xff08;内部闪存存储器&#xff09; 存储下载的程序 程序执行时用到的常量 桥接1和桥接2 AHB到APB的桥&#xff08;AHBtoAPBx) 桥1 通过APB2总线连接到APB2上的外设。 高速外设&#xff0c;最高72MHz。 桥2 通过…

离散化和树状数组

离散化 #include<bits/stdc.h> using namespace std; using lllong long; const int N3e59; ll a[N]; struct Q {ll a,b; }Add[N],Que[N];//用结构体存储数值对 vector<ll>X; ll getIdx(ll x)//得到离散化数组下标 {return lower_bound(X.begin(),X.end(),x)-X.beg…

序列化和反序列化(Linux)

1 序列化和反序列化 write和read实质是拷贝函数 1.1序列化和反序列化的概述&#xff1a; 2网络版计算器 2.1代码实现 先把日志拷贝过来 2.1.1必须先要有网络功能 先把 TcpServer.hpp编写号 #pragma once #include <cstdint>#include "Socket.hpp" #inclu…

关于ngx-datatable no data empty message自定义模板解决方案

背景&#xff1a;由于ngx-dataable插件默认没有数据时显示的文案是no data to display&#xff0c;且没有任何样式。这里希望通过自定义模板来实现。但目前github中有一个案例是通过设置代码&#xff1a; https://swimlane.github.io/ngx-datatable/empty** <ngx-datatable…

opencv 图片颜色+轮廓识别

目标图片&#xff1a; 1 简单识别图片中出现颜色最多的 import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException;public class SimpleImageColorRecognizer implements ImageColorRecogniz…

文件系统调用(上) ─── linux第17课

目录 linux 中man 2和man 3的区别 文件内容介绍 C语言文件接口 示例: 输出信息到显示器&#xff0c;你有哪些方法 总结: 系统文件I/O 文件类的系统调用接口介绍 示例 open 函数具体使用哪个,和具体应用场景相关&#xff0c; write read close lseek ,类比C文件相关接…

vue3-element-admin 前后端本地启动联调

一、后端环境准备 1.1、下载地址 gitee 下载地址 1.2、环境要求 JDK 17 1.3、项目启动 克隆项目 git clone https://gitee.com/youlaiorg/youlai-boot.git数据库初始化 执行 youlai_boot.sql 脚本完成数据库创建、表结构和基础数据的初始化。 修改配置 application-dev.y…

证券行业SCA开源风险治理实践

近日&#xff0c;悬镜安全成功中标国内领先的证券公司海通证券软件成分分析工具采购项目&#xff0c;中标产品为源鉴SCA开源威胁管控平台。 海通证券作为国内领先的证券公司之一&#xff0c;当下已基本建成涵盖证券期货经纪、投行、自营、资产管理、私募股权投资、另类投资、融…

JVM内存结构笔记(上)

文章目录 前言运行时数据区域1.程序计数器定义特点总结 2.虚拟机栈2.1 定义局部变量表 ★操作数栈动态链接方法返回地址(方法出口) 2.2 栈内存溢出演示栈内存溢出 java.lang.StackOverflowError 2.3问题辨析1. 垃圾回收是否涉及栈内存&#xff1f;2. 栈内存分配越大越好吗&…

使用 Miniforge3 管理 Python 环境的详细指南(基于最新实践和时效性信息,截至 2025 年)

以下是使用 Miniforge3 管理 Python 环境的详细指南&#xff08;基于最新实践和时效性信息&#xff0c;截至 2025 年&#xff09;&#xff1a; 一、Miniforge3 简介 Miniforge3 是一个轻量级 Conda 环境管理工具&#xff0c;默认使用 conda-forge 软件源&#xff08;社区维护的…

【python|二分|leetcode441】一题搞清楚二分区间问题---闭区间、左闭右开、左开右闭、全开区间

every blog every motto: Although the world is full of suffering&#xff0c; it is full also of the overcoming of it 0. 前言 一题搞清楚二分区间问题—闭区间、左闭右开、左开右闭、全开区间 0.1 题目&#xff1a;Problem: 441. 排列硬币 你总共有 n 枚硬币&#x…

【NLP 34、实践 ⑧ 基于faq知识库和文本匹配算法进行意图识别】

目录 一、demo1_similarity_function.py 二、demo2_bm25.py 三、基于faq知识库和文本匹配算法的意图识别 1.初始化 2.加载BM25模型 3.加载Word2Vec模型 4.文本向量化 5.加载知识库 6.查询方法 7.模型测试 正是江南好时节&#xff0c;落花时节又逢君 —— 25.3.7 一、demo1_sim…

机器人交互系统 部署构建

环境要求 Ubuntu 20.04 或更高版本ROS Noetic 或兼容版本Python 3.8 安装步骤 1. 安装ROS环境&#xff08;如未安装&#xff09; sudo apt update sudo apt install ros-noetic-desktop-full source /opt/ros/noetic/setup.bash2. 创建工作空间并克隆代码 mkdir -p ~/code…

每日一题——两数相加

两数相加 问题描述问题分析解题思路代码实现代码解析注意事项示例运行总结 问题描述 给定两个非空链表&#xff0c;表示两个非负整数。链表中的每个节点存储一个数字&#xff0c;数字的存储顺序为逆序&#xff08;即个位在链表头部&#xff09;。要求将这两个数字相加&#xff…

ResNet50深度解析:原理、结构与PyTorch实现

ResNet50深度解析&#xff1a;原理、结构与PyTorch实现 1. 引言 ResNet&#xff08;残差网络&#xff09;是深度学习领域的一项重大突破&#xff0c;它巧妙解决了深层神经网络训练中的梯度消失/爆炸问题&#xff0c;使得构建和训练更深的网络成为可能。作为计算机视觉领域的里…

政安晨【零基础玩转各类开源AI项目】Wan 2.1 本地部署,基于ComfyUI运行,最强文生视频 图生视频,一键生成高质量影片

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 目录 下载项目 创建虚拟环境 安装项目依赖 尝试运行 依次下载模型 完成 我们今天要使…