查找两个字符串中所有公共子字符串的函数未给出正确的输出

2023-11-25

我使用以下函数来查找两个字符串之间的所有公共子字符串:

def substringFinder(string1, string2):
    answer = ""
    anslist=[]
    len1, len2 = len(string1), len(string2)
    for i in range(len1):
        match = ""
        for j in range(len2):
            if (i + j < len1 and string1[i + j] == string2[j]):
                match += string2[j]
                j=j+1
            else:
                #if (len(match) > len(answer)): 
                answer = match
                if answer != '':
                    anslist.append(answer)
                match = ""

        if match != '':
            anslist.append(match)
        break
    print(anslist)

所以当我这样做时substringFinder("ALISSA", "ALYSSA")是给出['AL', 'SSA']这很好。但当我这样做时substringFinder("AHAMMAD", "AHAMAD"),它只给出输出['AHAM']但我想要['AHAM', 'MAD']作为输出。如何得到它?


你可以试试这个:

def substrings(s1, s2):
    final = [s1[i:b+1] for i in range(len(s1)) for b in range(len(s1))]


    return [i for i in final if i in s1 and i in s2 and len(i) > 1]

s1, s2 = "ALISSA", "ALYSSA"


print(substrings(s1, s2))

Output:

['AL', 'SS', 'SSA', 'SA']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找两个字符串中所有公共子字符串的函数未给出正确的输出 的相关文章

随机推荐

  • 默认今日小部件中的布局约束冲突

    我在刚刚为我的应用程序创建的 今日小部件 中观察到有关自动布局的非常奇怪的行为 试图找到问题的根源 我最终创建了一个简单的新的 Xcode 项目 单视图应用程序 并添加了今天扩展作为新目标 甚至没有碰它 当我在我的设备 iPhone 6s
  • Android Hybid 应用程序使用 Ionic 框架显示远程图像时出现问题?

    我是离子的新手 我正在使用 Ionic Framework 1 3 20 Angular JS Cordova 5 0 0 模板文件browser html代码 div class col 50 img div app js code st
  • 如何停止 Eclipse 关于目标文件夹内容的警告?

    我从我的生成文件中收到大量警告target我无法修复的文件夹 例如从 XSD 或 Surefire 报告生成的 Java 代码 并且它在我的源代码中隐藏了正确的警告 有谁知道如何告诉 Eclipse 不要在某些文件夹中显示警告 或者只是在
  • 如何为 IJulia Jupyter 笔记本设置 Julia 环境?

    我在全局 Julia 中遇到包兼容性问题环境对于我想在 Jupyter 笔记本中使用的特定包 有没有办法告诉 IJulia 使用不同的环境而不是我的全局环境 默认的 IJulia 内核sets project 因此 最方便的方法 IMO 是
  • 我们应该直接使用 ScalaSignature 吗?

    Scala 签名是一个注释 它包含元信息 https github com scala scala blob v2 9 2 src library scala reflect ScalaSignature java 然后提供解析器 但sca
  • 在读取记录时我应该使用 SQL 事务吗?

    SQL事务用于插入 更新 但是否应该用于读取记录呢 如果您在一次查询中查询所有记录 然后一次性将它们拉回 则没有必要 一切都包含在隐式事务中 也就是说 即使您取回一百万条记录 即使其他进程正在更改这些记录 您也会看到所有一百万条记录在同一时
  • 如何在 Qt 中一次将输入掩码和 QValidator 设置为 QLineEdit?

    我想要一个接受 IP 地址的行编辑 如果我将输入掩码指定为 ui gt lineEdit gt setInputMask 000 000 000 000 它接受大于 255 的值 如果我给出验证器 那么我们必须在每三位数字后给出一个点 最好
  • 通过F#和Npgsql调用Postgresql中的存储过程

    我正在尝试使用 Npgsql 类型提供程序从 F 调用 postgresql 中的存储过程 目前 我连接数据库的方式如下 open System open System Data open System Data Entity open S
  • Laravel 中的自定义代码应该放在哪里

    再会 我有一些来自以前的非 MVC 应用程序的自定义代码 这是经过所有单元测试的东西 现在 我需要将其放入 Laravel 应用程序中 它们不是控制器 模型或视图 这是否意味着我必须将它们与 Symfony 和 Swiftmailer 文件
  • 如何在 TypeScript 中指定任何可更新的类型?

    我尝试过这个 但它不起作用 Foo 只是对有效方法的测试 Bar 是真正的尝试 它应该接收任何可更新的类型 但 Object 的子类对于该目的无效 class A class B public Foo newable typeof A vo
  • 重置 SQL Server 中的标识列

    我正在制作一个存储联系人的 SQL 数据库 我希望能够删除联系人 每个联系人的正确 ID 对于我的软件连接到它至关重要 假设我已经联系了詹姆斯 他是第一个联系的 他的id是0 我添加Mary 她的id是1 如果我删除James 如何将Mar
  • WebRTC getStat() API 设置

    我正在尝试使用 WebRTC api 中的 getStat 来查看它是否提供任何有用的信息来测量延迟和其他视频流数据 问题是没有太多关于如何使用它的信息 即使是较旧的现有示例也相当罕见 但从那时起 api 已经发生了变化 例如我的设置 pe
  • Object.assign() 是创建深拷贝还是浅拷贝?

    我刚刚遇到这个概念 var copy Object assign originalObject 这将原始对象的副本创建到 copy但是 我的问题是 这种克隆对象的方式会创建深拷贝还是浅拷贝 PS 令人困惑的是 如果它创建深层副本 那么这将是
  • 针对 PHP 中给定 DTD 的 XML 验证

    在 PHP 中 我尝试使用应用程序指定的 DTD 而不是外部获取的 XML 文档 来验证 XML 文档 DOMDocument 类中的 validate 方法似乎仅使用 XML 文档本身指定的 DTD 进行验证 因此这不起作用 这可以完成吗
  • 如何 grep 唯一出现次数

    我明白那个grep c string可用于计算给定字符串的出现次数 我想做的是 当只有字符串的一部分已知或保持不变时 计算唯一出现的次数 例如 如果我有一个文件 在本例中是一个日志 其中有几行包含常量字符串和重复变量 如下所示 string
  • 如何在react-native iOS应用程序运行时读取Info.Plist?

    在运行时 有没有办法读取CFBundleVersion来自 Info Plist 我想在应用程序的 关于框 中显示版本信息 提前致谢 Ed 我建议你使用这个做得很好library 我想你会得到你需要的所有信息 EDIT 您还可以在 AppD
  • dotnet docker /bin/sh: 1: [dotnet,: 未找到

    我使用 dockerfile 成功构建 但是当我尝试从构建映像运行新容器时 出现以下错误 我需要做什么来解决这个问题 错误 bin sh 1 dotnet 未找到 docker运行命令 docker run rm it p 8080 80
  • 检查套接字是否阻塞(Winsock 特定)[重复]

    这个问题在这里已经有答案了 可能的重复 在Win32中 有没有办法测试套接字是否是非阻塞的 这就是我在Windows中将套接字设置为非阻塞模式的方法 unsigned long mode is blocking 0 1 int ret io
  • 使用另一个控件的值的验证规则

    我正在尝试做一些我之前认为非常简单的事情 在另一个控件的验证规则中使用一个控件的值 我的应用程序具有用户可以输入的各种参数 此处讨论的具体参数定义范围的起点和终点 用户通过文本框设置值 有问题的两个控件是开始和结束文本框 验证时应检查以下条
  • 查找两个字符串中所有公共子字符串的函数未给出正确的输出

    我使用以下函数来查找两个字符串之间的所有公共子字符串 def substringFinder string1 string2 answer anslist len1 len2 len string1 len string2 for i in