有關字串的子串行或者配準問題對於序列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中保證不出現...