#3134: 不知怎哪裡錯= =WA(line9)最長共同字串


machib01850216 (marmot)

學校 : 臺北市立建國高級中學
編號 : 8584
來源 : [114.24.227.49]
最後登入時間 :
2018-09-26 22:32:11
c001. 10405 - Longest Common Subsequence -- UVa10405 | From: [122.120.212.17] | 發表日期 : 2009-12-29 19:50

程式碼:

#include<iostream>
#include<string>
#include<cmath>
using namespace std;
int main()
{
    int a1,b1,num=0,c=0,k=0,num2=0;
    char a[1000],b[1000];
    while(cin>>a>>b)
    {num=0;c=0;k=0;
    a1=strlen(a);
    b1=strlen(b);
    if(a1>b1) swap(a1,b1);
    for(int i=0; i<=a1-1; i++)//開始正向判斷
    {
        for(int j=k; j<=b1-1; j++)
        {
            if(a[i]==b[j]) {num++;k=j+1;break;}
        }
    }
   
    num2=0;k=b1-1;
    for(int i=a1-1; i>=0; i--)//開始倒向判斷
    {
        for(int j=k; j>=0; j--)
        {
            if(a[i]==b[j]) {num2++;k=j-1;break;}
        }
    }
    if(num>num2) cout<<num<<endl;
    else cout<<num2<<endl;
    }
    system("pause");
    return 0;
}

不知是哪裡出問題= = 我的答案:1

                             正確答案:9  ????

  不知有甚麼更好的演算法呢?

謝謝

 
ZeroJudge Forum