该方法是保留两个变量,一个用于最长公共子串(和)的长度和当前公共子串(计数)的长度。当字符不同时,当前公共子目录的长度重置为零,否则将其增加1并相应地更新。 下面是该方法的代码:

    void lcss(int i,int j,int count,int& ans,string& a,string& b){
        if(i<0 || j<0){
            return;
        }
        if(a[i]==b[j]){
            count+=1;
            ans = max(count,and);
            lcss(i-1,j-1,count,ans,a,b);
        }else{
        
            lcss(i-1,j,0,ans,a,b);
            lcss(i,j-1,0,ans,a,b);
        
        }
    }

上面的代码在以下情况下失败:

  WSPD
  WSUTPCAFSYAIBJHAMMEGWBTPQELRNKBLDXGUZGCSEC

我无法识别代码中的逻辑错误。