九度互联网站推广公司西安的商城网站设计

张小明 2026/1/17 12:18:48
九度互联网站推广公司,西安的商城网站设计,怎么把自己的网站上传到百度,网站方案案例怎么做在自然语言处理的拼写检查、生物信息学的DNA序列相似度比对等场景中#xff0c;最小编辑距离是衡量两个字符串差异程度的核心指标。它表示将一个字符串通过插入、删除、替换单个字符的操作#xff0c;转换成另一个字符串所需的最少操作次数。本文将基于动态规划思想#xff…在自然语言处理的拼写检查、生物信息学的DNA序列相似度比对等场景中最小编辑距离是衡量两个字符串差异程度的核心指标。它表示将一个字符串通过插入、删除、替换单个字符的操作转换成另一个字符串所需的最少操作次数。本文将基于动态规划思想采用静态二维数组实现DP表的方式详细讲解最小编辑距离问题的求解过程并附上完整可运行的C代码。一、最小编辑距离的动态规划思路1. 状态定义设两个字符串分别为 word1 长度为 m 和 word2 长度为 n 定义 dp[i][j] 表示将 word1 的前 i 个字符转换成 word2 的前 j 个字符所需的最小编辑次数。2. 边界初始化- 当 i0 时 word1 为空字符串转换成 word2 的前 j 个字符需要j次插入操作即 dp[0][j] j 。- 当 j0 时 word2 为空字符串转换成 word1 的前 i 个字符需要i次删除操作即 dp[i][0] i 。3. 状态转移方程对于 word1[i-1] 和 word2[j-1] 字符串下标从0开始DP表下标从1开始- 若 word1[i-1] word2[j-1] 无需任何操作 dp[i][j] dp[i-1][j-1] 。- 若 word1[i-1] ! word2[j-1] 取删除 dp[i-1][j] 、插入 dp[i][j-1] 、替换 dp[i-1][j-1] 三种操作的最小次数再加1次当前操作即 dp[i][j] min(min(dp[i-1][j], dp[i][j-1]), dp[i-1][j-1]) 1 。二、静态二维数组实现代码采用静态二维数组实现DP表需提前定义数组的最大长度如 MAX_LEN 适用于字符串长度固定且已知的场景内存分配更高效。cpp#include iostream#include string#include algorithmusing namespace std;// 定义字符串的最大长度可根据实际需求调整const int MAX_LEN 1000;// 动态规划求解最小编辑距离静态二维数组实现DP表int dpEditDistance(string word1, string word2) {int m word1.size(), n word2.size();// 静态二维数组作为DP表存储子问题的解int dp[MAX_LEN 1][MAX_LEN 1];// 初始化边界word1为空时插入j个字符得到word2前j个字符for (int i 0; i m; i) dp[i][0] i;// 初始化边界word2为空时删除i个字符得到word1前i个字符for (int j 0; j n; j) dp[0][j] j;// 填充DP表求解所有子问题for (int i 1; i m; i) {for (int j 1; j n; j) {if (word1[i - 1] word2[j - 1]) {// 字符相等无需操作继承子问题解dp[i][j] dp[i - 1][j - 1];} else {// 字符不等取删除、插入、替换的最小操作数1dp[i][j] min(min(dp[i - 1][j], dp[i][j - 1]), dp[i - 1][j - 1]) 1;}}}// dp[m][n]即为整个问题的解return dp[m][n];}// 测试示例int main() {string word1 kitten;string word2 sitting;cout 最小编辑距离 dpEditDistance(word1, word2) endl;// 输出结果3kitten→sitten→sittin→sitting共3次操作word1 intention;word2 execution;cout 最小编辑距离 dpEditDistance(word1, word2) endl;// 输出结果5return 0;}三、代码解析与测试结果1. 静态数组优势静态二维数组在栈上分配内存访问速度比动态分配的二维数组/vector更快适合字符串长度可控的场景。2. 时间复杂度两层循环遍历 m*n 个状态时间复杂度为O(mn)。3. 空间复杂度静态二维数组占用(MAX_LEN1) \times (MAX_LEN1)的空间空间复杂度为O(MAX\_LEN^2)。4. 测试结果- 字符串 kitten 和 sitting 的最小编辑距离为3- 字符串 intention 和 execution 的最小编辑距离为5与理论结果一致。四、方法优劣分析优点- 实现简单直观静态数组的内存访问效率高- DP表完整存储了所有子问题的解可回溯查看具体的编辑操作路径。缺点- 静态数组的最大长度需提前定义灵活性不足若字符串长度超过 MAX_LEN 会导致数组越界- 空间开销固定即使处理短字符串也会占用 MAX_LEN^2 的内存。五、拓展方向若需要优化空间复杂度可将二维DP表压缩为一维数组仅保留当前行和上一行将空间复杂度降至O(min(m,n))若需处理超长字符串可改用动态二维数组或 vector 实现避免静态数组的长度限制。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站关于我们介绍模板品牌网站推广方案

GPT-SoVITS语音相位一致性分析 在当前个性化语音交互需求爆发式增长的背景下,传统语音合成技术正面临前所未有的挑战:如何用极少的数据还原一个人的声音?怎样让机器生成的语音不仅“像”,而且听起来自然、真实,甚至难以…

张小明 2026/1/15 19:25:06 网站建设

传媒网站源码网站建设 分类广告

岐金兰AI元人文构想:是什么,不是什么人类在环、语境主权、规则内生:https://zsyyb.cn/abs/202512.03695引言:一次范式的地壳运动在人工智能与人类文明关系的讨论已趋于概念化、术语化的今天,“岐金兰AI元人文构想”的出…

张小明 2026/1/15 19:25:59 网站建设

平安银行官方网站建筑用塑料模板价格

想要用树莓派实现媲美专业级的3D打印控制体验吗?本指南将带你从零开始,仅需10分钟即可完成整个Klipper配置流程,让低成本硬件发挥最大性能! 【免费下载链接】klipper Klipper is a 3d-printer firmware 项目地址: https://gitco…

张小明 2026/1/15 21:43:35 网站建设

湛江网站建设湛江单页网站后台

探索Lenia:发现连续细胞自动机中的数学生命奇迹 【免费下载链接】Lenia Lenia - Mathematical Life Forms 项目地址: https://gitcode.com/gh_mirrors/le/Lenia 你是否曾想象过数学公式能够孕育出拥有自主行为、复杂形态和演化能力的"生命"&#x…

张小明 2026/1/15 21:54:12 网站建设

南宁网站建设外包坑梓网站建设方案

基于线性化的设计示例及非线性飞行控制 1. 非正则单输入单输出系统的近似线性化 在控制理论中,对于单输入单输出(SISO)系统,存在一类不具有相对度的系统,被称为非正则系统。这类系统的一般形式为: [ \begin{cases} \dot{x} = f(x) + g(x)u \ y = h(x) \end{cases}…

张小明 2026/1/15 11:19:17 网站建设

中国住建厅网站官网手机网站 代码

从零开始:用STM32CubeMX点亮LVGL图形界面 你有没有遇到过这样的场景?项目要求做一个带触摸屏的工业控制面板,客户还想要滑动动画、按钮渐变、图标切换——但主控只是个STM32F407,连操作系统都没上。这时候, LVGL 就…

张小明 2026/1/15 22:06:54 网站建设