为什么要在解决方案中添加+1

加尔格的头发

正在通过一些算法帖子。在审查时,我怀疑为什么我们在返回最终解决方案的同时在下面的代码中添加了1。

import sys 

# Recursive function to find minimum  
# number of insertions 
def findMinInsertions(str, l, h): 

    # Base Cases 
    if (l > h): 
        return sys.maxsize 
    if (l == h): 
        return 0
    if (l == h - 1): 
        return 0 if(str[l] == str[h]) else 1

    # Check if the first and last characters are 
    # same. On the basis of the comparison result,  
    # decide which subrpoblem(s) to call 

    if(str[l] == str[h]): 
        return findMinInsertions(str, l + 1, h - 1) 
    else: 

        **return (min(findMinInsertions(str, l, h - 1), 
                findMinInsertions(str, l + 1, h)) + 1)** 

# Driver Code 
if __name__ == "__main__": 

    str = "abc"
    print(findMinInsertions(str, 0, len(str) - 1)) 
托马斯·萨布利克
findMinInsertions(str, l, h - 1)

是插入最后一个字符后的最小插入次数。

findMinInsertions(str, l + 1, h)

是插入第一个字符后的最小插入次数。

min(findMinInsertions(str, l, h - 1), findMinInsertions(str, l + 1, h)) # (a)

是插入第一个字符或最后一个字符后的最小插入次数。要获得最少的插入次数,您可以在插入一个字符之后(a)采取最少的插入次数,然后添加一次插入(因为已经插入了一个字符)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

为什么此问题中的4遍解决方案的性能比1遍解决方案的性能更快?

来自分类Java

JPA和Hibernate中的N + 1问题有什么解决方案?

来自分类Dev

为什么我的解决方案为 sum(n in order) 提供与 sum(n in order:(n-1) in order) 相同的值

来自分类Dev

Python在O(1)解决方案中引发算术错误

来自分类Dev

1. 请在 Codesignal.com 上向 Rectangle Rotation 解释此解决方案 2. 请解释为什么我的解决方案不起作用

来自分类Dev

在0和1的排序数组中查找1的位置的解决方案

来自分类Dev

在1个解决方案中的多个项目之间共享资源。Visual Studio 2010

来自分类Dev

pytorch中缺少具有L1正则化的稀疏解决方案

来自分类Dev

JuMP - 整数和 0-1 编程中的多种解决方案

来自分类Dev

在NuGet Init.ps1中创建或获取解决方案文件夹

来自分类Dev

C 裸函数 - 在 1 个函数中执行汇编和 c 代码的灼热解决方案

来自分类Dev

为什么需要在GCP上使用Centrify等安全解决方案?

来自分类Dev

为什么要在数组O(1)中查找?

来自分类Dev

优化我的 1D peg solitaire 解决方案

来自分类Dev

计算从1到n的个数的替代解决方案

来自分类Dev

为什么constant()解决方案比“ Scala FP”中的简单解决方案5.8更有效?

来自分类Dev

带约束forall(x中的i)(x [i] <= x [i + 1]);的不满足的解决方案;

来自分类Dev

解决方案资源管理器中的 C# Form1.cs 文件 - VS 2017

来自分类Dev

为什么我们需要在/ dev / null 2>&1中有2>&1?

来自分类Java

这是为什么GoLang解决方案快则相应的Java解决方案?

来自分类Java

为什么此MinDepth级解决方案与递归解决方案相比这么慢?

来自分类Dev

为什么我的解决方案有效,而其他解决方案却无效?

来自分类Dev

为什么这个 Python 解决方案不是就地解决方案?

来自分类Dev

澄清了Google Code Jam 2019,Round 1C,问题1的解决方案

来自分类Dev

为什么在Visual Studio中添加解决方案文件夹会更改项目文件,并且有什么方法可以防止这种情况发生?

来自分类Dev

为什么在此解决方案中,小屏幕的 Jumbotron 高度没有降低?

来自分类Dev

在 SymPy 中,为什么我的解决方案 (nonlinsolve) 返回错误答案?

来自分类Dev

可疑的转换在解决方案中没有继承的类型->为什么/以某种方式起作用

来自分类Dev

为什么在linux中创建分区是一个易于恢复的好解决方案?

Related 相关文章

  1. 1

    为什么此问题中的4遍解决方案的性能比1遍解决方案的性能更快?

  2. 2

    JPA和Hibernate中的N + 1问题有什么解决方案?

  3. 3

    为什么我的解决方案为 sum(n in order) 提供与 sum(n in order:(n-1) in order) 相同的值

  4. 4

    Python在O(1)解决方案中引发算术错误

  5. 5

    1. 请在 Codesignal.com 上向 Rectangle Rotation 解释此解决方案 2. 请解释为什么我的解决方案不起作用

  6. 6

    在0和1的排序数组中查找1的位置的解决方案

  7. 7

    在1个解决方案中的多个项目之间共享资源。Visual Studio 2010

  8. 8

    pytorch中缺少具有L1正则化的稀疏解决方案

  9. 9

    JuMP - 整数和 0-1 编程中的多种解决方案

  10. 10

    在NuGet Init.ps1中创建或获取解决方案文件夹

  11. 11

    C 裸函数 - 在 1 个函数中执行汇编和 c 代码的灼热解决方案

  12. 12

    为什么需要在GCP上使用Centrify等安全解决方案?

  13. 13

    为什么要在数组O(1)中查找?

  14. 14

    优化我的 1D peg solitaire 解决方案

  15. 15

    计算从1到n的个数的替代解决方案

  16. 16

    为什么constant()解决方案比“ Scala FP”中的简单解决方案5.8更有效?

  17. 17

    带约束forall(x中的i)(x [i] <= x [i + 1]);的不满足的解决方案;

  18. 18

    解决方案资源管理器中的 C# Form1.cs 文件 - VS 2017

  19. 19

    为什么我们需要在/ dev / null 2>&1中有2>&1?

  20. 20

    这是为什么GoLang解决方案快则相应的Java解决方案?

  21. 21

    为什么此MinDepth级解决方案与递归解决方案相比这么慢?

  22. 22

    为什么我的解决方案有效,而其他解决方案却无效?

  23. 23

    为什么这个 Python 解决方案不是就地解决方案?

  24. 24

    澄清了Google Code Jam 2019,Round 1C,问题1的解决方案

  25. 25

    为什么在Visual Studio中添加解决方案文件夹会更改项目文件,并且有什么方法可以防止这种情况发生?

  26. 26

    为什么在此解决方案中,小屏幕的 Jumbotron 高度没有降低?

  27. 27

    在 SymPy 中,为什么我的解决方案 (nonlinsolve) 返回错误答案?

  28. 28

    可疑的转换在解决方案中没有继承的类型->为什么/以某种方式起作用

  29. 29

    为什么在linux中创建分区是一个易于恢复的好解决方案?

热门标签

归档