【问题标题】:Translate Pseudocode into python将伪代码翻译成python
【发布时间】:2015-04-19 16:18:26
【问题描述】:

以下是计算 Levenstein 最小距离自适应的伪代码。我已经为 python 解码了第一部分,但我无法弄清楚底部,用 *** 表示。

使用动态规划的距离计算算法(伪代码):

First Part:

int function distance(Sequence sequence1, Sequence sequence2)
  set length_1 to length of sequence1
  set length_2 to length of sequence2

declare distances[length_1+1][length_2+1]

for i from 0 to length_1
  set distances[i][0] to i

for j from 0 to length_2
  set distances[0][j] to j

// Classical Levenshtein part
for i = 1 to length_1
  for j = 1 to length_2
    set cost to 0
    if (sequence1[i-1] not equal to sequence[j-1])
      set cost to 1
    set distances[i][j] to minimum of
          distances[i-1][j-1] + cost,// Substitution
          distances[i][j-1] + 1, // Insertion
          distances[i-1][j] + 1 // Deletion

set min_distance to distances[length_1][length_2]

******New Part- Help!*******
// Truncating
for i from 0 to length_1
  set min_distance to minimum of min_distance and distances[i][length_2]
// Elongating
for j from 0 to length_2
  set min_distance to minimum of min_distance and distances[length_1][j]
return min_distance

【问题讨论】:

  • 不分享第一部分的伪代码,为什么不分享代码?
  • 但这与“古典 Levenshtein 部分”的操作相同,不是吗?遍历一行二维数组并计算一些值的最小值?
  • 对不起伙计们,我是个菜鸟,我意识到我的翻译代码无论如何都搞砸了。你们中的一个能否救我的命并将整个伪代码翻译成python。最重要的是最后一部分……

标签: python pseudocode


【解决方案1】:
return min(itertools.chain((x[length_2] for x in distances),
  distances[length_1]))

【讨论】:

  • 感谢您回答 Ignacio...我想我对第一部分的翻译有所不同。你愿意翻译整个伪代码吗?你会是一个救生员,我绊倒了!
猜你喜欢
  • 2013-11-25
  • 2018-03-09
  • 1970-01-01
  • 2012-10-17
  • 1970-01-01
  • 1970-01-01
  • 2018-09-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多