思路:使用动态规划,设f[i][j]表示在原始文本字符串S的前i个字符和有用信息字符串T的前j个字符中,有多少种精简S的方式,使得精简后的S的前缀包含T的前缀。则有以下状态转移方程:

如果S[i] == T[j],则f[i][j] = f[i-1][j-1] + f[i-1][j] 如果S[i] != T[j],则f[i][j] = f[i-1][j]

最终答案即为f[n][m],其中n为S的长度,m为T的长度。

代码如下:

请你按照以下要求编写代码很多人一些话翻来覆去说得没有任何营养有用信息就一点点……如果可以不用废话文学请不要使用废话文学。 给定一个原始文本字符串 � ∣�∣≤3×105S ∣S∣≤3×10 5 和一个有用信息字符串 � ∣�∣≤200T ∣T∣≤200现在可以对 �S 进行精简操作具体来说就是可以将 �S 的开头和结尾分别去掉一段使得剩下的字符串 �′S ′ 中包含有有用信息 �T

原文地址: http://www.cveoy.top/t/topic/fQYE 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录