求兩個字串的距離

2021-10-04 16:38:42 字數 811 閱讀 1594

給定兩個長度相等的,由小寫字母組成的字串s1和s2,定義s1和s2的距離為兩個字串有多少個位置上的字母不相等。

現在牛牛可以選定兩個字母x1和x2,將s1中的所有字母x1均替換成x2。(x1和x2可以相同)

牛牛希望知道執行一次替換之後,兩個字串的距離最少為多少。

(x1和x2是自己求的,未知)

輸入「aaa」,「bbb」輸出0

輸入「aabb」,「cdef」輸出3

#include

#include

#include

#include

using

namespace std;

class

solution

;//建立乙個二維陣列並且賦值為0

for(i=

0;i) dis=sum;

//賦初值

for(i=

0;i<

26;i++

)for

(int j=

0;j<

26;j++

) dis=

min(dis,sum+flag[i]

[i]-flag[i]

[j])

;/*對每乙個可能的x1,x2都進行嘗試,如若:替換前某些位置x1,x2

恰好相等,那麼替換後這個位置上兩者就不等了。即:距離變大,+。

同時,某些位置替換之後相等,即:距離減小,-。*/

return dis;}}

;int

main()

要讚讚

計算兩個字串的距離

題目描述 對於不同的字串,希望能夠有辦法判斷其相似程度。定義了如下方法來把兩個不同的字串變得相同,具體的操作方法為 1.修改乙個字元 如把 a 替換為 b 2.增加乙個字元 如把 abc 變換為 aabc 3.刪除乙個字元 如把 abc 變換為 bc 比如,對於 abc 和 bc 兩個字串來說,可以...

求兩個字串的相似度(或距離)

兩個字串距離和相似度的定義 通過修改 增加和刪除操作,使兩個字串變的相等,所做的操作次數為兩個字串的距離,距離加1的倒數為相似度。例如 a abeg b cdeg 通過更改a中的ab cd使兩個字串相等,兩個操作,距離為2。求距離的 如下 int caldistance char a,char b ...

計算兩個字串的距離演算法

題目的描述為 將乙個字串變成另乙個字串,方式為新增乙個字元,刪除乙個字元,替換乙個字元,求這些操作的做小次數,例如字串db adcb 兩個字串,通過新增a和c兩個字元獎db編輯成adcb,這個兩個字串的距離為2 思路 定義乙個二維代價陣列dp n m 設新增乙個字元的代價為 ic inseret c...