回文詞 線性dp

2022-06-22 11:27:12 字數 669 閱讀 1743

#include#include

using

namespace

std;

int n,f[5002][5002

];char str1[5002],str2[5002

];int

main()

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

if(str1[i]!=str2[j])}}

cout

}

題目描述

回文詞是一種對稱的字串——也就是說,乙個回文詞,從左到右讀和從右到 左讀得到的結果是一樣的。任意給定乙個字串,通過插入若干字元,都可以變成乙個回文 詞。你的任務是寫乙個程式,求出將給定字串變成回文詞所需插入的最少字元數。 比如字串「ab3bd」,在插入兩個字元後可以變成乙個回文詞(「dab3bad」 「adb3bda」)。然而,插入兩個以下的字元無法使它變成乙個回文詞。

輸入格式

檔案的第一行包含乙個整數n,表示給定字串的長度(3≤n≤5000)。

檔案的第二行是乙個長度為n的字串。字串僅由大寫字母「a」到「z」,小寫字母「a」 到「z」和數字「0」到「9」構成。大寫字母和小寫字母將被認為是不同的。

輸出格式

檔案只有一行,包含乙個整數,表示需要插入的最少字元數。

回文詞 題解

題目描述 回文詞是一種對稱的字串 也就是說,乙個回文詞,從左到右讀和從右到左讀得到的結果是一樣的。任意給定乙個字串,通過插入若干字元,都可以變成乙個回文詞。你的任務是寫乙個程式,求出將給定字串變成回文詞所需插入的最少字元數。比如字串 ab3bd 在插入兩個字元後可以變成乙個回文詞 dab3bad 或...

模擬 回文詞

題目描述 回文詞是一種對稱的字串,也就是說 乙個回文詞,從左向右讀和從右向左讀的結果都是一樣的.任意給定乙個字串,通過插入若干個字元,都可以變成乙個回文詞.你的任務是寫乙個程式,求出給定字串變成回文詞所需插入的最小字元數.比如,字串 ab3db 在插入兩個字元後可以變成乙個回文詞 dab3bad a...

回文詞 C語言

題目描述 輸入乙個字串,判斷它是否為回文以及映象串。輸入字串保證不含數字0.所謂回文串,就是反轉之後原串相同,如abba和madam。所謂映象串,就是左右映象之後和原串相同,如2s和3aiae。注意,並不是每個字元在映象之後都能得到乙個合法字元,本題中,每個字元的映象如下所示,空白項表示該字元映象後...