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

2022-07-18 00:54:12 字數 1401 閱讀 4067

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

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

輸入描述:

輸入資料有多組,每組包含乙個字串s,且保證:1<=s.length<=1000.

輸出描述:

對於每組資料,輸出乙個整數,代表最少需要刪除的字元個數。

輸入例子1:

abcda

google

輸出例子1:22

參考:

動態規劃

#

python版

#思路:最長會文字序列:== str與reverse_str的最長公共字序列

#注意:碰到了樓上python解法同樣的問題,沒把迴圈過程放到name中,一直說是過90%

#然後超時,放進去就好了。猜一下:是不是給了程式入口能加快解析 # -*- coding:utf-8 -*-

import

sysdef

maxlcp(strs):

if strs==none or len(strs)==0:

return

0 lens =len(strs)

dp =[0] *lens

dp[0] = 1 if strs[0] == strs[lens-1] else

0

for i in

range(lens):

pre =dp[0]

dp[0] = max(dp[0],1 if strs[i] == strs[lens-1] else

0)

for j in range(1,lens):

cur =dp[j]

dp[j] = max(dp[j],dp[j-1])

if strs[i] == strs[lens-1-j]:

dp[j] = max(dp[j],pre+1)

pre =cur

return dp[lens-1] if

__name__ == '

__main__':

while

true:

line =sys.stdin.readline().strip()

lens =len(line)

ifnot

line:

break

maxlcp =maxlcp(line)

#print lens

#print maxlcp

print(lens - maxlcp)

您的**已儲存

答案正確:恭喜!您提交的程式通過了所有的測試用例

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

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

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

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

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

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