如何求指数时间内的最长公共子序列?

2024-01-04

我可以使用动态编程以正确的方式做到这一点,但我不知道如何在指数时间内做到这一点。

我正在寻找两个字符串之间最大的公共子序列。 注意:我的意思是子序列而不是子串,组成序列的符号不必是连续的。


只需用递归调用替换动态编程代码中表中的查找即可。换句话说,只需实现以下的递归公式:LCS https://en.wikipedia.org/wiki/Longest_common_subsequence_problem问题:

EDIT

在伪代码中(实际上几乎是Python):

def lcs(s1, s2):
 if len(s1)==0 or len(s2)==0: return 0
 if s1[0] == s2[0]: return 1 + lcs(s1[1:], s2[1:])
 return max(lcs(s1, s2[1:]), lcs(s1[1:], s2))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何求指数时间内的最长公共子序列? 的相关文章

  • 找到一系列间隔的最有效分组

    我有一个应用程序 其中有一系列不重叠的固定宽度间隔 每个间隔都有一个给定的键 每个间隔具有相同的宽度 并且可以存在连续的间隔 本质上 我想以最小化单独间隔的数量的方式对间隔和键进行分组 这可以通过合并具有相同键的连续间隔或查找匹配间隔并将它
  • 寻找将集合映射到整数的双射函数

    对于任意两个序列 a b 其中 a a1 a2 an 且 b b1 b2 bn 0a b具有相同的元素 而不关心它们的顺序 例如 如果 a 1 1 2 3 b 2 1 3 1 c 3 2 1 3 则 f a f b f a f b 我知道有
  • 无需构建树即可预测霍夫曼压缩比

    我有一个二进制文件 我知道其中每个符号出现的次数 如果我要使用霍夫曼算法压缩它 我需要预测压缩文件的长度 我只对假设的输出长度感兴趣 而不对单个符号的代码感兴趣 因此构建霍夫曼树似乎是多余的 作为一个例子 我需要得到类似的东西 包含 4 个
  • 如何仅使用单个数组在 JavaScript 中模拟调用堆栈

    我正在看维基百科页面 https en wikipedia org wiki Call stack在调用堆栈上 并尝试理解这个图像 据我所知 哈哈 const memory memory 0 3 top of stack pointer m
  • 包围一组点的多边形

    我有一组 S 点 2D 由 x 和 y 定义 我想找到 P 包围该组所有点的最小 含义 具有最少数量的点 多边形 P 是S 有没有已知的算法来计算这个 我在这个领域缺乏文化令人惊讶 感谢您的帮助 对于这个问题有很多算法 它被称为 最小边界框
  • 快速约会算法

    我在一家咨询公司工作 大部分时间都在客户所在地 正因为如此 我很少见到同事 为了更好地了解彼此 我们将安排一个晚宴 会有很多小桌子 方便人们聊天 为了在聚会期间与尽可能多的不同的人交谈 每个人都必须每隔一段时间 比如每小时 换一张桌子 如何
  • 在常数空间中创建 1..N 的随机排列

    我正在寻找枚举固定空间中数字 1 N 的随机排列 这意味着我无法将所有数字存储在列表中 原因是 N 可能非常大 超过可用内存 我仍然希望能够一次遍历这样一个数字的排列 只访问每个数字一次 我知道对于某些 N 可以这样做 许多随机数生成器随机
  • 如何有效地找到距给定点最远的点(从一组点中)?

    我正在寻找一种算法或数据结构来解决以下问题 给你一组点 S 然后你会得到另一个点形式的 Q 查询 对于每个查询 找到集合中距离给定点最远的点 集合中最多有 10 5 个点和 10 5 个查询 所有点的坐标都在 0 到 10 5 范围内 我想
  • 计算两点之间的最短路线

    过去几周我一直在开发一款多人 HTML5 游戏 使用nodejs and websockets 我已经被这个问题困扰了一段时间 想象一下 我用数组实现了这个平铺地图 如下所示 1 or 棕色瓷砖 路上有障碍物 玩家无法通过 0 or 绿色瓷
  • 具有多个谓词的 C++11 算法

    功能如std find if来自algorithmheader 确实很有用 但对我来说 一个严重的限制是我只能为每次调用使用 1 个谓词count if 例如给定一个像这样的容器std vector我想同时应用相同的迭代find if 多个
  • Clojure 集合与序列的相等性

    我注意到 Clojure 1 4 似乎很乐意考虑向量等于seq相同的向量 但同样不适用于地图 1 2 seq 1 2 gt true 1 2 seq 1 2 gt false 为什么要这样的行为 这样会有所不同吗 Clojure 的 可以认
  • 具有 2 个属性的背包算法。如何在 3d 数组中实现它?

    当有超过 1 个属性时 我无法理解背包问题 当有 1 个属性时 我必须编写一个使用具有 2 个属性的背包算法的程序 老师告诉我们 它必须在 3d 数组中完成 错误的实现将导致 O 2 n 处理时间 我无法想象这样的数组会是什么样子 假设这是
  • 归并排序中递归树的高度log(n)+1是怎么来的

    我按照 stackoveflow 的建议阅读了一些问题和答案 我正在遵循 cormen 的 算法简介 一书进行自学 那本书里已经解释得很清楚了 但唯一没有解释的是如何在合并排序分析中计算树的高度 如果在后面的章节中对此进行解释的话 我仍然在
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • n 或 nlog(n) 比常数时间或对数时间更好吗?

    在 Coursera 上的普林斯顿教程中 讲师解释了遇到的常见增长顺序函数 他说 线性和线性算术运行时间是 我们努力的目标 他的推理是 随着输入大小的增加 运行时间也会增加 我认为这是他犯了错误的地方 因为我之前听过他提到线性增长顺序对于高
  • 嵌套循环结果

    我真的不知道如何找出嵌套循环的结果 例如 在下面的伪代码中 我无法弄清楚执行结束时会给出什么 如果有人给我一个简单的解决方案 我会很高兴 r lt 0 for i lt 1 to n do for j lt 1 to i do for k
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 数量重新分配逻辑 - 具有外部数据集的 MapGroups

    我正在研究一种复杂的逻辑 需要将数量从一个数据集重新分配到另一个数据集 在例子中我们有Owner and Invoice 我们需要从数量中减去Invoice准确地Owner匹配 在给定汽车的给定邮政编码处 减去的数量需要重新分配回同一辆车出
  • 如何计算排列? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个关于 Java 排列的问题 Suppose I have five different elements in an arra
  • 我正在尝试寻找“调酒师算法”

    我正在解决旧编程竞赛中的一些示例问题 在这个问题中 我们输入了我们有多少调酒师以及他们知道哪种配方 每杯鸡尾酒的制作时间为 1 分钟 我们需要计算是否可以在 5 分钟内使用所有调酒师完成订单 解决这个问题的关键是尽可能高效地分配鸡尾酒 这就

随机推荐

  • 可以让 WinDBG 在符号存储中找到 mscordacwks.dll 吗?

    问题 有很多手动方法可以让 WinDBG 在没有符号存储的情况下找到 mscordacwks dll 将文件放在某个路径中 将其放在与 Windbg exe 相同的文件夹中 将其放在我的 Framework v 文件夹中 在使用WinDBG
  • 图书馆的数据库架构

    我正在为我的大学的一个部门设计一个图书馆管理系统 我想吸引您关注我提出的架构 这篇文章主要涉及我们如何存储每本书的多个副本 我设计的一些东西让我感到不舒服 我希望你们都能指出更好的方法来解决问题 为了处理用户借书的情况 我设计了三个表 bo
  • 带有客户端 haml 的 angularjs

    我刚刚开始在 Rails 应用程序中使用 AngularJS 并且由于我习惯在 Rails 中使用 haml 模板 所以我想在客户端对 AngularJS 执行相同的操作 问题是我不知道在 haml 文件中读取哪里 我有一个供投资者使用的模
  • CoreMotion 姿态参考系

    有什么区别startDeviceMotionUpdatesUsingReferenceFrameCM态度参考框架 X任意Z垂直 X任意校正Z垂直 X磁北Z垂直 X真北Z垂直 Here is 苹果文档 https developer appl
  • C#从MYSQL读取Mediumblob数据类型

    我在 MYSQL Server 中有一个数据库 有一个表存储图像及其信息 该图像的数据类型是 Mediumblob 我需要读取它并存储在 byte 中 但我不知道该怎么做 有人对这种情况有解决方案吗 非常感谢 Regards 查看来自的示例
  • 在 JPanel 内绘制 JComponent

    我正在尝试在 JPanel 内显示 JComponent 我使用空布局 因为组件的位置可以在运行时更改 并且我必须控制它们 但下面的代码不起作用 如果我显式调用 paintComponent 方法 JComponent 仅在显示时变得可见
  • 如何快速从列表中删除项目

    我正在寻找一种快速从 C 中删除项目的方法List
  • 如何在本地查看git中项目的Github网络视图?

    我觉得有点荒谬 我必须将分支推送到 Github 才能查看我可以使用的内容 有没有办法在 git 本地获得用户友好的视图 The git log branches remotes tags graph oneline decorate并不真
  • Tibco EMS 协议

    我正在尝试使用 Node js 与 Tibco EMS 服务器进行交互 并且很好奇是否可以仅在 Node js 中使用完全开源的解决方案 我不想使用 Tibco 的 Web Messaging 解决方案 那么这让我们想到 Tibco EMS
  • 为什么 C# 中的类没有循环布局问题?

    public struct Unit Unit u Causes Unit 类型的结构成员 Unit u 导致结构中发生循环 布局 But public class Unit Unit u 编译 我明白我想的问题 引用a时会形成死循环Uni
  • 完整功能中如何获取jQuery ajax数据?

    我知道这是众所周知的主题 解决方案之一是将调用更改为同步 我仍然不清楚是否有其他方法可以异步执行并获取完整函数中的数据 示例函数在 success 函数中创建一个新的资产对象 我想在完整函数中获取对它的引用 function getPres
  • javax.el.PropretyNotWritableException:类 Article 没有可写属性“id”

    我有一篇文章 DTO Article java 代码摘录 public class Article private int id public Article this id 0 public Integer getId return id
  • Keycloak 授权:CRUD 授权策略、通过 API 的权限

    在 Keycloak 中 我看到有一个 CRUD API 来创建资源 和范围 http 主机 端口 auth realms realm name authz protection resource set http 24 7Bhost 7D
  • 如何使用 DBI 从数据库中获取单个计数值?

    对于获取单个计数值 以下代码似乎太多了 是否有更好的推荐方法来使用普通 DBI 获取单个 COUNT 值 sub get count my sth dbh gt prepare SELECT COUNT FROM table WHERE s
  • 具有 HTML5 验证功能的 JQuery 对话框表单

    我正在创建一个 HTML5 示例应用程序 但我坚持做一些简单的事情 这是我想做的 我有一个链接 可以打开 JQuery 模式对话框 在该对话框中 有一个表单 有 2 个字段 当我单击 Envoyer 按钮 这是一个 JQuery 按钮 而不
  • 通过Rest WebService上传图像文件

    我写了下面的代码来做到这一点 POST Path UploadProfileImage Consumes MediaType MULTIPART FORM DATA Produces MediaType APPLICATION JSON p
  • Xamarin.IOS.dll 使用广告标识符 (IDFA)

    我们想提交我们的Xamarin申请复核Apple Appstore在提交过程中会提出以下问题 此应用程序是否使用广告标识符 IDFA 这 广告标识符 IDFA 是每个 iOS 设备的唯一 ID 是提供有针对性的广告的唯一方法 用户可以选择限
  • NSProxy 和键值观察

    NSProxy对于那些尚不存在的对象来说 它似乎可以很好地作为替代对象 例如 NSMethodSignature methodSignatureForSelector SEL sel return self target methodSig
  • 使用 Roboto 精简或精简

    是否可以使用Roboto 薄型或浓缩型 https dl ssl google com android design Roboto Specimen Book 20111129 pdf在 ICS 中 无需包含 ttf 并手动加载它 我的意思
  • 如何求指数时间内的最长公共子序列?

    我可以使用动态编程以正确的方式做到这一点 但我不知道如何在指数时间内做到这一点 我正在寻找两个字符串之间最大的公共子序列 注意 我的意思是子序列而不是子串 组成序列的符号不必是连续的 只需用递归调用替换动态编程代码中表中的查找即可 换句话说