筆試題之構造回文(LCS問題)2017騰訊暑假校招

2021-09-12 07:49:13 字數 959 閱讀 5784

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

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

輸入描述:

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

輸出描述:

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

輸入例子1:

abcda

google

輸出例子1:

2

2分析:

要求刪掉字元最少,也就是最長的回文串,回文串的性質是正反讀起來一樣,所以我們將當前字串逆反得到乙個新的字串,然後求得這兩個字串的最長公共子串行的長度

然後字串的總長度減去最長公共子串行的長度,就是最少需要刪除的字元的個數

code:

#includeusing

namespace

std;

#define max_v 1005

#define me(a,x) memset(a,x,sizeof(a))typedef

long

long

ll;int dp[max_v][max_v];//

dp[i][j]表示a0.....ai和b0....bj的lcs長度

char

a[max_v],b[max_v];

intmain()

me(dp,0);

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

else}}

cout

}return0;

}

posted @

2019-03-09 15:18

y先森0.0 閱讀(

...)

編輯收藏

騰訊筆試題 構造回文

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

京東校招筆試題回文

京京和東東是好朋友。東東很喜歡回文。回文是指從前往後讀和從後往前讀是一樣的詞語。京京準備給東東乙個驚喜,先取定乙個字串s,然後在後面附上0個或者更多個字母形成回文,京京希望這個回文越短越好。請幫助京京計算他能夠得到的最短的回文長度。輸入包括乙個字串s,字串s長度length 1 length 50 ...

微軟筆試題 回憶(回文方面)

這道題當年我沒有做出來,今天微軟筆試又碰到了類似的題目 狠心要將這一塊吃透 主要還是對動態規劃掌握的不夠熟練。n個瓶子都有編號,每次能射擊1個或多個瓶子,如果是回文的就能一次性擊倒。最少幾次能全擊倒?輸入 1,2 輸出 2 輸入 1,3,4,1,5 輸出 3 說明 第一次先射3,變成 1,3,1,5...