題目:
給定乙個字串s,你可以從中刪除一些字元,使得剩下的串是乙個回文串。如何刪除才能使得回文串最長呢?
輸出需要刪除的字元個數。
輸入描述:
輸入資料有多組,每組包含乙個字串s,且保證:1<=s.length<=1000.輸出描述:
對於每組資料,輸出乙個整數,代表最少需要刪除的字元個數。輸入例子:
abcda輸出例子:
2實現的思路,回文就是正序和倒序都一樣,所以可以看做是求字串的正序和倒序的最長公共子串lcs,然後用原始長度減去最長公共字串的長度即為所求。2
[cpp]view plain
copy
#include
#include
using
namespace
std;
intfindmax(
int&a,
int&b)
intgetlcs(string &s1, string &s2)
//動態規劃法
} } return
c[m][n];
} int
main()
intlen_lcs = getlcs(s1, s2);
intcnt = s1.length() - len_lcs;
cout <
} return
0;
}
Python 獲取2個字串的最長公共子串
計畫是這樣的 查詢所有pdf用pdf名字建立資料夾,並將對應的pdf檔案,移入資料夾中 查詢與pdf名字最接近的 檔案,並將其移入對應的資料夾中。看到明顯是一本書的文字和音訊資料 可以發現,他們都有相同的子字串,所以先要處理找兩個字串最長公共子串的問題。求兩個字串的最長公共子串 思想 建立乙個二維陣...
求兩個字串的最長公共子串
問題 有兩個字串str和str2,求出兩個字串中最長公共子串長度。比如 str acbcbcef,str2 abcbced,則str和str2的最長公共子串為bcbce,最長公共子串長度為5。演算法思路 1 把兩個字串分別以行和列組成乙個二維矩陣。2 比較二維矩陣中每個點對應行列字元中否相等,相等的...
求兩個字串的最長公共子串
def longestcommonsequence str one,str two,case sensitive true str one 和 str two 的最長公共子串行 param str one 字串1 param str two 字串2 正確結果 param case sensitive...