About Me

About Me : I have been working as a Software Engineer for various international companies for four years.Currently, I am working as a full stack Javascript developer in Petronas(Malaysia).

Skills

Skills • Javascript •Typescript •Python •C •Java •ReactJs • Redux • VueJs • NestJs • React Testing Library • Django• PostgreSQL • MySQL • NodeJs • Git • Docker • Jira • Visual Studio Code • Slack

রবিবার, ১১ জানুয়ারী, ২০১৫

SPOJ SOLUTION :452- Longest Common Subsequence

#include <iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include <ctime>

using namespace std;

char s1[1010],s2[1010],res[1010];
int icount[1010],jcount[1010],ary[1010][1010];

int lcs(int m,int n)
{
    // ary[m+1][n+1];
    for(int i=0; i<=m; i++)
    {
        for(int j=0; j<=n; j++)
        {
            if(i==0||j==0) ary[i][j]=0;
            else if(s1[i-1]==s2[j-1])  ary[i][j]=ary[i-1][j-1]+1;
            else ary[i][j]=max(ary[i-1][j],ary[i][j-1]);
        }
    }
    return ary[m][n];

}
void printlcs(int m,int n)
{

    int i=m,j=n;
    int index=-1;
    while(true)
    {
        if(s1[i-1]==s2[j-1])
        {
            index++;
            icount[index]=i;
            jcount[index]=j;
            res[index]=s1[i-1];
            i--;
            j--;
        }
        else
        {

            if( ary[i-1][j]>ary[i][j-1]) i--;
            else j--;
        }
        if(i==0||j==0) break;

    }
    for(int i=index; i>=0; i--)
    {
        printf("%c %d %d\n",res[i],icount[i],jcount[i]);
    }



}

int main()
{
    int test;
    scanf("%d",&test);
    for(int cas=1; cas<=test; cas++)
    {
        int l1,l2;
        scanf("%d%s%d%s",&l1,s1,&l2,s2);
        int res=lcs(l1,l2);
        if(res==0||res==1)
        {
            printf("case %d N\n",cas);
            continue;
        }
        printf("case %d Y\n",cas);
        cout<<res<<endl;
        printlcs(l1,l2);



    }

    return 0;
}

কোন মন্তব্য নেই:

একটি মন্তব্য পোস্ট করুন