首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最长公共子序列Postgresql

最长公共子序列Postgresql
EN

Stack Overflow用户
提问于 2012-10-10 20:04:23
回答 1查看 788关注 0票数 3

我需要postgresql中最长的公共子序列函数。典型的安装对它不起作用。我在plpgsql上写了代码,但运行速度很慢。postgres有没有一些插件(或者别的什么)来实现这样的功能呢?

编辑:我需要比较2个字符串,但不是与=运算符和not like。例如,如果我必须找到abcba,结果可以是adbcbdac。为此,我想实现LCS(最长的公共子序列,而不是字符串)

编辑:我找到了一些postgre的扩展名为fuzzystrmatch,但它只适用于最大255字节的文本。有没有人知道这个扩展的类比?

EN

回答 1

Stack Overflow用户

发布于 2012-10-11 17:56:00

我同意Erwin,Craig和the Deer Hunter的观点,您可以通过告诉我们您正在进行什么样的比较来提供更多的信息?假设您比较的是文本文件,比较完整的行就足够了。那么你能把最短文件的行数和最长文件的行数进行比较吗?比较有三种可能性: 1.文件A中的行与文件B中的任何行都不匹配;2.文件A中的行与文件B中的行确实匹配;3.文件A中的行确实匹配,并且这两行都连续到前一次匹配。如果是情况1,请关闭任何打开的对象。如果存在打开的对象,则将其添加到数组中。如果是情况2,并且没有打开的对象,则创建一个新对象。如果有一个打开的对象,那么它应该是一个3号的情况,因此将行(或行号)添加到打开的对象。运行执行此比较的两个文件,您将找到答案,因为具有最大行数(或字符数)的对象将是您的LCS。

然而,我会用另一种语言来执行这种操作,而不是plpgsql。在我的例子中,它是Java还是PHP。只需将数据转换为这种类型的语言并完成工作即可。这些语言为这种类型的操作提供了更好的装备。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12818900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档