jzoj 1569. 【普及模拟】公共子串

发布于 2019-03-19  945 次阅读


 

题目描述

写一个程序,给你两个字符串,计算最长的公共子串的长度。如果字符串s连续地出现在字符串t中,则称s是t的子串。

输入

    输入有两行,每行一个字符串,字符串里的字符都是大写英文字母,长度不超过4000。

输出

    输出一个整数表示公共子串的最长长度。
思路:
如果s1[i]=s2[j]     f[i,j]=f[i-1,j]+f[i,j-1]+1;
var
  s1,s2:ansistring;
  f:array[0..4000,0..5000] of longint;
  i,j,k,n,m,max:longint;
begin
  assign(input,'common.in'); reset(input);
  assign(output,'common.out'); rewrite(output);
  readln(s1);
  readln(s2);
  for i:=1 to length(s1) do
    for j:=1 to length(s2) do
      begin
        if s1[i]=s2[j] then f[i,j]:=f[i-1,j-1]+1;
        if max

 

]]>