力扣刷题记录(25)LeetCode:583、72、647

583. 两个字符串的删除操作

题目说可以删除任意一个字符串中的字符,实际上就是在求两个字符串的公共子序列。求得公共子序列后与字符串长度做个减法即可得需要的步数。

class Solution {
public://求最长子数组int minDistance(string word1, string word2) {vector<vector<int>> dp(word1.size()+1,vector<int>(word2.size()+1,0));int maxLength=0;for(int i=1;i<=word1.size();i++){for(int j=1;j<=word2.size();j++){if(word1[i-1]==word2[j-1])dp[i][j]=dp[i-1][j-1]+1;elsedp[i][j]=max(dp[i-1][j],dp[i][j-1]);maxLength=max(maxLength,dp[i][j]);}} return word1.size()+word2.size()-2*maxLength;}
};

72. 编辑距离

 这题还是分两种情况来写递推公式,当前字符相等或者不相等

示例:word1="horse"  word2="ros"

1.当前字符相等

        比如说ho、ro,此时字符就相等,那么所需的操作步数就等于前一个字符所需要的步数,因为当前字符已经相等不需要对它进行操作。即dp[i][j]=dp[i-1][j-1]

2.当前字符不相等

        可以对当前字符进行3中操作

  • 替换

        比如hor、ros,此时就可以将r直接替换成s,dp[i][j]=dp[i-1][j-1]+1

  • 删除

        比如hor、ro,此时就可以将r直接删除,dp[i][j]=dp[i-1][j]+1

  • 增加

        比如ho、ros,此时就可以添加一个s,dp[i][j]=dp[i][j-1]+1

     综上,当前字符不相等时,dp[i][j]=min( dp[i-1][j-1] , dp[i-1][j] , dp[i][j-1] ) +1 

class Solution {
public:int minDistance(string word1, string word2) {vector<vector<int>> dp(word1.size()+1,vector<int>(word2.size()+1,0));for(int i=0;i<=word1.size();i++){dp[i][0]=i;}for(int j=0;j<=word2.size();j++){dp[0][j]=j;}for(int i=1;i<=word1.size();i++){for(int j=1;j<=word2.size();j++){if(word1[i-1]==word2[j-1])dp[i][j]=dp[i-1][j-1];elsedp[i][j]=min(dp[i-1][j-1],min(dp[i][j-1],dp[i-1][j]))+1;}}return dp[word1.size()][word2.size()];}
};

647. 回文子串

方法一:暴力求解

class Solution {
public:bool huiwen(string s,int start,int end){while(start<end){if(s[start]!=s[end])return false;start++;end--;}return true;}int countSubstrings(string s) {int ans=1;for(int i=1;i<s.size();i++){for(int j=0;j<=i;j++){if(huiwen(s,j,i))ans++;}}return ans;}
};

 方法二:动态规划

用i、j表示s的索引,dp[i][j]表示区间[j,i]内的字符串是否是回文串。如果s[i]==s[j],那么我们只需要看dp[i-1][j+1]是否是回文串。如果s[i]!=s[j],那么dp[i][j]=false

class Solution {
public:int countSubstrings(string s) {vector<vector<bool>> dp(s.size(),vector<bool>(s.size(),false));int ans=0;for(int i=0;i<s.size();i++){for(int j=i;j>=0;j--){if(s[i]==s[j]){if(i-j<2 || dp[i-1][j+1]==true){dp[i][j]=true;ans++;}}}}return ans;}
};

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

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

相关文章

C#高级:Lambda表达式分组处理2(WITH ROLLUP关键字)

目录 一、问题引入 二、with rollup查询 三、去掉多余数据 四、拓展 一、问题引入 查询SQL后结果如下&#xff0c;字段分别是用户、项目、批次、工作时间&#xff1a; SELECT UserID,ProjectID,ProBatchesID,WorkHour FROM MAINTABLE GROUP BY HourFiller ,ProjectID ,…

第84讲:基于各种场景使用mysqldump逻辑备份数据库

文章目录 1.mysqldump备份工具的语法格式2.使用mysqldump进行全库备份3.备份单个库或者多个库的数据4.备份某个库下的单表或者多表的数据5.mysqldump备份数据库时必加的一些参数5.1.基本参数5.2.核心参数 6.mysqldump备份数据库时的一些其他参数 1.mysqldump备份工具的语法格式…

力扣hot100 翻转二叉树 递归

&#x1f468;‍&#x1f3eb; 题目地址 &#x1f60b; AC code /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNod…

异常检测 | Matlab基于GNN图神经网络的异常数据检测

异常检测 | Matlab基于GNN图神经网络的异常数据检测 目录 异常检测 | Matlab基于GNN图神经网络的异常数据检测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 Matlab基于GNN图神经网络的异常数据检测。其核心思想是学习一个函数映射。本次使用人类活动数据&#…

卷积神经网络|制作自己的Dataset

在编写代码训练神经网络之前&#xff0c;导入数据是必不可少的。PyTorch提供了许多预加载的数据集&#xff08;如FashionMNIST&#xff09;&#xff0c;这些数据集 子类并实现特定于特定数据的函数。 它们可用于对模型进行原型设计和基准测试&#xff0c;加载这些数据集是十分…

leetcode贪心(单调递增的数字、监控二叉树)

738.单调递增的数字 给定一个非负整数 N&#xff0c;找出小于或等于 N 的最大的整数&#xff0c;同时这个整数需要满足其各个位数上的数字是单调递增。 &#xff08;当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。&#xff…

完善 Golang Gin 框架的静态中间件:Gin-Static

Gin 是 Golang 生态中目前最受用户欢迎和关注的 Web 框架&#xff0c;但是生态中的 Static 中间件使用起来却一直很不顺手。 所以&#xff0c;我顺手改了它&#xff0c;然后把这个改良版开源了。 写在前面 Gin-static 的改良版&#xff0c;我开源在了 soulteary/gin-static&a…

汉字的音韵之美:中文拼音的魅力之旅

导语&#xff1a;中文拼音作为汉字的语音表达方式&#xff0c;已经深入人心。它不仅有助于汉字的学习与传播&#xff0c;还为汉语的国际化铺平了道路。本文将为您详细介绍中文拼音的起源、发展及其在我国教育、科技、文化等方面的广泛应用&#xff0c;带您领略这一古老而又现代…

5.云原生安全之ingress配置域名TLS证书

文章目录 cloudflare配置使用cloudflare托管域名获取cloudflare API Token在cloudflare中配置SSL/TLS kubesphere使用cert-manager申请cloudflare证书安装证书管理器创建Secret资源创建cluster-issuer.yaml创建cert.yaml申请证书已经查看申请状态 部署harbor并配置ingress使用证…

AI 编写完整工程代码:自然语言控制,AI 驱动开发 | 开源日报 No.135

gpt-engineer-org/gpt-engineer Stars: 47.6k License: MIT GPT-Engineer&#xff0c;AI 帮你写代码&#xff01; 工作流程&#xff1a; 通过自然语言指定软件AI 编写和执行代码引导 AI 优化改进 核心优势&#xff1a; 可以编辑 preprompts 文件来指定 AI 代理的 “身份”…

Excel 插件:ASAP Utilities Crack

ASAP Utilities是一款功能强大的 Excel 插件&#xff0c;填补了 Excel 的空白。在过去的 20 年里&#xff0c;我们的加载项已经发展成为世界上最受欢迎的 Microsoft Excel 加载项之一。 ASAP Utilities 中的功能数量&#xff08;300 多个&#xff09;可能看起来有点令人眼花缭乱…

【100个Cocos实例】还记得这个指哪打哪的游戏吗?

引言 Cocos中简易实现炉石目标选择箭头效果 23年1月24日0时&#xff0c;由网易代理的暴雪系列游戏在国内正式终止运营。 炉石传说&#xff0c;一个陪伴了笔者4年的游戏&#xff0c;传说、竞技场12胜历历在目。 转眼停服已经快1年&#xff0c;有小道消息称炉石即将回归国服&…