DP字串型別題彙總

2021-09-25 18:47:11 字數 2698 閱讀 4926

最長公共子串(lcs)

//輸出a和b最長公共子串的長度, 並列印結果

#include

using

namespace std;

const

int maxn =

1005

;int d[maxn]

[maxn]

;char a[maxn]

, b[maxn]

;int la, lb;

intmain()

int len = d[la]

[lb]

;printf

("%d\n"

, len)

; stack<

char

> ans;

int i = la, j = lb;

while

(d[i]

[j])

}while

(!ans.

empty()

)return0;

}

最短公共父串

//輸出a和b最短公共父串的長度以及在該長度下可以生成的父串個數

#include

using

namespace std;

const

int maxn =15;

int d[maxn]

[maxn]

, f[maxn]

[maxn]

;int len1, len2, cnt;

char a[maxn]

, b[maxn]

;int

main()

for(

int i =

1; i <= len1; i++

)else}}

printf

("%d %d"

, d[len1]

[len2]

, f[len1]

[len2]);

}

//列印a和b最短公共父串

#include

using

namespace std;

const

int maxn =15;

int d[maxn]

[maxn]

;int flag[maxn]

[maxn]

;char str[maxn]

, str1[maxn]

;char p[maxn]

;int k;

void

print

(int l,

int r)

else

if(flag[l]

[r]==1)

else

}void

lcs(

)else

else}}

}print

(n, m)

;printf

("\n");

}int

main()

return0;

}

插入字元生成回文串

#include

using

namespace std;

const

int maxn =

1005

;int n, m;

int d[maxn]

[maxn]

;int

dp(string s, string t)

return d[n]

[m];

}int

main()

分割字串生成回文子串

#include

using

namespace std;

const

int maxn =

1050

;int d[maxn]

;int s[maxn]

[maxn]

;string st;

intwork()

// odd_left

p = i -1;

q = i;

while

(p >=

0&& q < len && st[p]

== st[q]

)// odd_right

p = i;

q = i +1;

while

(p >=

0&& q < len && st[p]

== st[q])}

}// s[i][j]是否為回文串

intmain()

} cout << d[len -1]

<< endl;

}return0;

}

刪除最少字元使兩串相同

int

delet

(string s, string t)

return n + m -

2* d[n]

[m];

}

修改或刪除最少字元使兩串相同

int

edit

(string s, string t)

return d[n]

[m];

}

字串彙總

字串的暴力,挺無腦的,沒什麼想說的。inline void init inline int query int l,int r 第一次是橫著hash,用的是p1,此時的 h 表示的是第 i 行長度為 j 的字首串的hash值。第二次是豎著hash,用的是p2,此時的 h 發生了更新,此時的 h 變成...

字串方法彙總

1.定義字串直接量 var s abc 2.構造字串 var s new string 建立空字串 var s new string adafwv 字串初始化 3.計算字串長度s.length 注意 字串長度不可以像陣列一樣動態增長,但可使用下標來定義單個字元 4.查詢字串 charat 返回字串中...

字串函式彙總

為什麼strcpy要有返回值?返回strdest的原始值使函式能夠支援鏈式表示式,增加了函式的 附加值 同樣功能的函式,如果能合理地提高的可用性,自然就更加理想。鏈式表示式的形式如 int ilength strlen strcpy stra,strb 又如 char stra strcpy new...