牛牛有兩個字串(可能包含空格),牛牛想找出其中最長的公共連續子串,希望你能幫助他,並輸出其長度。
輸入描述:
輸入為兩行字串(可能包含空格),長度均小於等於50
輸出描述:
輸出為乙個整數,表示最長公共連續子串的長度
輸入例子:
abcde
abgde
輸出例子:
2解題思路:
這題其實是動態規劃的變形經典題型,應用動態規劃的思想,建立乙個二維陣列dp[n][n],其中dp[i][j],表示取到s1[i]和取到s2[j]時的最大連續子串長度。如果s1[i]等於s2[j],則dp[i-1][j-1]等於取到s1[i-1]和
取到s2[j-1]時的最大連續子串長度加1,即
dp[i][j]=dp[i-1][j-1]+1。
**:#include#include#include#includeusing namespace std;
#define maxn 1005
char a[maxn],b[maxn];
int dp[maxn][maxn];
int maxl=0;
int main()else
if(maxl#include#include#includeusing namespace std;
int main()
for(int i=0;i
動態規劃 回文子串的長度
給定乙個字串,求其最長的回文子串的長度。如字串 abcdcba 的最長回文子串長度為7,而 aebfcgdhcibja 的最長回文也是 abcdcba 長度也是7.分析 典型的動態規劃問題,用dp i j 記錄字串中從字元 i 到字元 j 中最長回文子串的長度,則 if s.charat i s.c...
動態規劃之字串拆分
某種字串處理語言允許程式設計師將乙個字串拆分為兩段。由於此操作需要複製字串,因此要花費n個時間單位來將乙個n個字元的字串拆為兩段。假定乙個程式設計師希望將乙個字串拆分為多段,拆分的順序會影響所花費的總時間。例如,假定這個程式設計師希望將乙個20個字元的字串在第2個,第8個以及第10個字元後進行拆分 ...
01串 動態規劃
時間限制 1000 ms 記憶體限制 65535 kb難度 2 描述 acm的zyc在研究01串,他知道某一01串的長度,但他想知道不含有 11 子串的這種長度的01串共有多少個,他希望你能幫幫他。注 01串的長度為2時,有3種 00,01,10。輸入 第一行有乙個整數n 0 輸出輸出不含有 11 ...