資料結構 動態規劃學習二 字串相似度

2021-09-09 09:10:43 字數 1162 閱讀 2075

有關字串的子串行或者配準問題

首先考慮 動態規劃

對於序列s和t,它們之間的距離定義為:對二者進行幾次以下的操作

(1)刪去乙個字元 (2) 插入乙個字元 (3) 改變乙個字元

每進行一次操作,計數增加1.

將s和t變成同乙個字串的最小計數即為他們的距離

leetcode 72. edit distance

int mindistance(string word1, string word2) 

if(word2 == "")

if(word1[0] == word2[0])

else

}

class solution 

if (n2 == 0)

// dp[i][j] 表示將 word1[0...j-1]變成word2[0..i-1]最少需要變化次數

vector> dp(n2 + 1, vector(n1 + 1, int_max));

dp[0][0] = 0;

// 第一行,word2為空,那麼刪除對應長度

for (int i = 1; i < n1 + 1; i++)

// 第一列,word1為空,那麼需要增加對應的長度

for (int i = 1; i < n2 + 1; i++)

for (int i = 1; i < n2 + 1; i++)

else }}

return dp[n2 ][n1 ];

}};

leetcode 647. palindromic substrings

找出乙個字串中的所有回文字串的個數.

class solution 

if (n == 1)

vector> dp(n , vector(n, false));

// dp[j][i]表示 是否[i..j]的是回文串

for (int j = 0; j < n; j++)

}int sum = 0;

for (int j = 0; j < n; j++)

}return sum;

}};

常見動態規劃問題分析與求解

資料結構3 字串

string的基本操作函式要會,拷貝,查詢 hw筆試第一題,兩個字串,前面是全量字符集,後面是已占用字符集 用 隔開 輸出剩餘的字符集。1 include2 include3 using namespace std 4string stringoperate string str1,string s...

資料結構實驗之串二 字串匹配

多組輸入一定要分開寫,竟然被卡了一上午。time limit 1000ms memory limit 65536k 有疑問?點這裡 給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1,第二行代表s...

資料結構實驗之串二 字串匹配

time limit 1000ms memory limit 65536k 給定兩個字串string1和string2,判斷string2是否為string1的子串。輸入包含多組資料,每組測試資料報含兩行,第一行代表string1,第二行代表string2,string1和string2中保證不出現...