序列和集合演算法之序列比較

2022-02-13 01:22:52 字數 1216 閱讀 1048

將乙個序列變成另乙個序列的最少修改步數。

例如下圖,將字串a變成字串b,所需要的步驟為6個步驟,match表示0步,其他操作表示1步:

設計演算法如下:

public

sealed

class

minimumeditdistance

else

//三者取最小代價

c[i, j] =math.min(math.min(candidatedel, candidateins), candidatematrep);}}

return

c; }

public listgetpossibledesicion(int[,] c, int row, int

col)

else

if (c[i, j] == c[i, j - 1] + 1) //

插入

else

if (c[i, j] == c[i - 1, j - 1])//

匹配

else

//替換

}return lo.reverse().tolist();}}

public

enum

operation

public

class

operationonoriginalstr

public operation operation

public

int aindex

public

int? bindex

}

呼叫方法如下:

minimumeditdistance med = new

minimumeditdistance();

var c =med.calculatedistance(a, b);

var steps =med.getpossibledesicion(c, a.length, b.length);

steps.foreach(s => console.writeline("

operation:,a,b

", s.operation, s.aindex, s.bindex));

c STL之常用集合演算法

set intersection 求兩個容器的交集 set union 求兩個集合的並集 set difference 求兩個集合的差集 1.set intersection includeusing namespace std include include 常用集合演算法 set interse...

kotlin 特殊集合之序列

1.先看段 直觀感受序列的優點,速度快 1 序列操作又稱惰性集合操作,在對集合進行鏈式操作 對映 過濾 變換 不需要像普通集合那樣,每進行一次資料操作都需要開闢新的記憶體儲存中間結果 author hc date 2019 09 25 12 05 fun main args array map su...

一些常用集合演算法 之組合生成

一些常用集合演算法 之組合生成 在開發過程中常常需要處理集合,因此我寫了一些常用演算法,貼出大家提提意見。本帖介紹組合生成演算法。開乙個陣列,陣列元素的值為1表示其下標代表的數被選中,為0則沒選中。首先初始化,將陣列前m個元素置1,表示第乙個組合選中前m個元素。然後找到從左到右的第乙個 10 組合,...