騰訊2017暑期實習生程式設計題(一) 構造回文

2021-07-27 14:52:46 字數 892 閱讀 5008

時間限制:1秒

空間限制:32768

k

給定乙個字串s,你可以從中刪除一些字元,使得剩下的串是乙個回文串。如何刪除才能使得回文串最長呢?

輸出需要刪除的字元個數。

輸入資料有多組,每組包含乙個字串s,且保證:1<=s.length<=1000.
對於每組資料,輸出乙個整數,代表最少需要刪除的字元個數。
abcda

google

2

2

分析:回文串的特點是,逆序輸出和正序輸出是一樣的。所以這道題可以從這方面來考慮。如果將此字串逆序輸出,那麼兩個字串的最長公共子串行將是最長的回文字串,那麼剩餘的值將是要刪除的字元個數。求兩個字串的最長公共子序的方法參見我的另一篇博文—-c++實現最長公共子串行和最長公共子串

#include 

#include

#include

#include

using

namespace

std;

int lcs( string &str1,string &str2 )

if( str1[i-1] == str2[j-1] )

else

else}}

}return c[len1][len2];

}int main()

for( vector

::iterator iter = v.begin(); iter != v.end(); ++iter)

return

0;}

大家有更好的解題思路可以討論討論。

騰訊2017暑期實習生程式設計題

刷題 pragma warning disable 4996 遮蔽警告 構造回文 題目描述 給定乙個字串s,你可以從中刪除一些字元,使得剩下的串是乙個回文串。如何刪除才能使得回文串最長呢?輸出需要刪除的字元個數。思路 其實就是,原字串翻轉之後的字串跟原字串的最長公共子串行 那麼利用動態規劃的最長公共...

騰訊2017暑期實習生程式設計題

構造回文串 給定乙個字串s,你可以從中刪除一些字元,使得剩下的串是乙個回文串。如何刪除才能使得回文串最長呢?輸出需要刪除的字元個數。輸入描述 輸入資料有多組,每組包含乙個字串s,且保證 1 s.length 1000.輸出描述 對於每組資料,輸出乙個整數,代表最少需要刪除的字元個數。示例1 輸入 a...

騰訊2017暑期實習生程式設計題

程式設計題 構造回文 時間限制 1秒 空間限制 32768k 給定乙個字串s,你可以從中刪除一些字元,使得剩下的串是乙個回文串。如何刪除才能使得回文串最長呢?輸出需要刪除的字元個數。輸入描述 輸入資料有多組,每組包含乙個字串s,且保證 1 s.length 1000.輸出描述 對於每組資料,輸出乙個...