南陽理工acm37 回文字串

2021-07-31 11:28:10 字數 880 閱讀 8884

時間限制:

3000 ms  |  記憶體限制:

65535 kb

難度: 4

描述 所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的,比如"aba"。當然,我們給你的問題不會再簡單到判斷乙個字串是不是回文字串。現在要求你,給你乙個字串,可在任意位置新增字元,最少再新增幾個字元,可以使這個字串成為回文字串。

輸入第一行給出整數n(0

輸出每行輸出所需新增的最少字元數

樣例輸入

1

ab3bd

樣例輸出

2

想法:動態規劃;

關鍵在於找動態轉移方程:

用data【i】【j】儲存從a【j】開始長度為i的字串變成回文字串所需插入字元個數。

if(a【j】==a【i+j-1】)

data【i】【j】=data【i-1】【j+2】;

else

data【i】【j】=min(data【i-1】【j】,data【i-1】【j+1】)+1;

**:

#include

#include

char a[1010];

int data[1010][1010];

int min(int i,int j)

int main()

{int n;

scanf("%d",&n);

while(n--)

{int i,j,n;

scanf("%s",a);

n=strlen(a);

memset(data,0,sizeof(data));//初始化

for(i=2;i<=n;i++)

for(j=0;j

ACM37 回文字串

時間限制 3000 ms 記憶體限制 65535 kb 難度 4描述 所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的,比如 aba 當然,我們給你的問題不會再簡單到判斷乙個字串是不是回文字串。現在要求你,給你乙個字串,可在任意位置新增字元,最少再新增幾個字元,可以使這個字串成為回文字...

南陽理工 37《回文字串》 動態規劃

時間限制 3000 ms 記憶體限制 65535 kb 難度 4描述 所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的,比如 aba 當然,我們給你的問題不會再簡單到判斷乙個字串是不是回文字串。現在要求你,給你乙個字串,可在任意位置新增字元,最少再新增幾個字元,可以使這個字串成為回文字...

題目37 回文字串

所謂回文字串,就是乙個字串,從左到右讀和從右到左讀是完全一樣的,比如 aba 當然,我們給你的問題不會再簡單到判斷乙個字串是不是回文字串。現在要求你,給你乙個字串,可在任意位置新增字元,最少再新增幾個字元,可以使這個字串成為回文字串。第一行給出整數n 0每行輸出所需新增的最少字元數 1 ab3bd ...