avatar
b*m
2
标准递归题。

【在 c********r 的大作中提到】
: Find the minimum edit distance between two strings
avatar
b*m
3
随便写了一下,请大家指正:
int EditDistance(char *s1, char *s2)
{
if( !s1 || !*s1 ) return strlen(s2);
if( !s2 || !*s2 ) return strlen(s1);

return min3(
EditDistance(s1 + 1, s2) + 1,
EditDistance(s1, s2 + 1) + 1,
EditDistance(s1 + 1, s2 + 1) + (*s1 == *s2 ? 0 : 1)
);
}
avatar
l*8
4
这是指数级时间复杂度吧。用dp好些

【在 b***m 的大作中提到】
: 随便写了一下,请大家指正:
: int EditDistance(char *s1, char *s2)
: {
: if( !s1 || !*s1 ) return strlen(s2);
: if( !s2 || !*s2 ) return strlen(s1);
:
: return min3(
: EditDistance(s1 + 1, s2) + 1,
: EditDistance(s1, s2 + 1) + 1,
: EditDistance(s1 + 1, s2 + 1) + (*s1 == *s2 ? 0 : 1)

avatar
c*r
5
好猫兄,可否简单讲一下思路

【在 b***m 的大作中提到】
: 随便写了一下,请大家指正:
: int EditDistance(char *s1, char *s2)
: {
: if( !s1 || !*s1 ) return strlen(s2);
: if( !s2 || !*s2 ) return strlen(s1);
:
: return min3(
: EditDistance(s1 + 1, s2) + 1,
: EditDistance(s1, s2 + 1) + 1,
: EditDistance(s1 + 1, s2 + 1) + (*s1 == *s2 ? 0 : 1)

avatar
c*r
6
简单说说思路

【在 l*********8 的大作中提到】
: 这是指数级时间复杂度吧。用dp好些
avatar
b*m
7
俺不会DP,正打算向二爷讨教。

【在 l*********8 的大作中提到】
: 这是指数级时间复杂度吧。用dp好些
avatar
j*s
8
用DP好一些
for(int i = 1 ; i< n1 + 1; ++i){
for (int j = 1; j < n2 + 1; ++j){
if (word1[i - 1] == word2[j - 1])
{
dist[i][j] = dist[i - 1][j - 1];
}
else{
dist[i][j] = min(dist[i - 1][j - 1], dist[i - 1][j],
dist[i][j - 1]) + 1;
}
}
}
avatar
p*2
9
经典dp了。
avatar
c*r
10
竟然有人把这题写成论文一般长, 正所谓经典

【在 p*****2 的大作中提到】
: 经典dp了。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。