我在Pramp上解决了这个问题,但在弄清楚该问题的算法时遇到了麻烦。我将粘贴问题描述以及解决方法。这是正确的解决方案。它类似于编辑距离算法,并且我使用了相同的方法。我只是想看看还有什么其他方法可以解决这个问题。
两个字符串的删除距离是为了获得相同的字符串而需要删除的两个字符的最小数量。例如,“热”和“命中”之间的删除距离为3:
通过删除“热”中的“ e”和“ a”以及“命中”中的“ i”,在两种情况下我们都得到字符串“ ht”。 我们不能通过删除2个或更少的字母来从两个字符串中获得相同的字符串。 给定字符串str1和str2,编写一个有效的函数deleteDistance,该函数返回它们之间的删除距离。解释您的函数如何工作,并分析其时间和空间复杂性。
示例:
输入:str1 =“ dog”,str2 =“ frog”
输出:3
输入:str1 =“ some”,str2 =“ some”
输出:0
输入:str1 =“ some”,str2 =“事物”
输出:9
输入:str1 =“”,str2 =“”
输出:0
在此解决方案中我想做的是使用动态编程来构建一个计算opt(str1Len,str2Len)的函数。请注意以下几点: 我使用动态编程方法来计算opt(str1Len,str2Len),即两个字符串的删除距离,方法是对所有0≤i≤str1Len,0≤j≤str2Len都计算opt(i,j),并保存先前的值< / p>
-- VIEW
view : Model -> Html Msg
view model =
div []
[ input [ placeholder "Team 1", style "width" "300px", style "height" "30px", style "font-size" "25px", value model.content ] []
, input [ placeholder "Strength", style "width" "300px", style "height" "30px", style "font-size" "25px", value model.content ] []
]
div []
[ button [ style "color" "white", style "height" "60px", style "font-size" "30px", style "margin-right" "70px"]
]