I am getting wrong answer . Please provide me corner test cases.

#include<stdio.h>
#include<string.h>
int count(char a[], char b[],int m,int n)
{
long long lookup[m + 1][n + 1] = { { 0 } };

for (int i = 0; i <= n; ++i)
    lookup[0][i] = 0;


for (int i = 0; i <= m; ++i)
    lookup[i][0] = 1;

for (int i = 1; i <= m; i++)
{
    for (int j = 1; j <= n; j++)
    {
      
        if (a[i - 1] == b[j - 1])
            lookup[i][j] = lookup[i - 1][j - 1] + 
                           lookup[i - 1][j];
             
        else
            lookup[i][j] = lookup[i - 1][j];
    }
}

return lookup[m][n];
}
int main()
{
char s[100001],b[3]={‘s’,‘m’,‘s’};
long long t,i,m,n,flag;
scanf("%lld",&t);
while(t–)
{
scanf("%s",s);
m=strlen(s);
n=3;
flag=count(s,b,m,n);
printf("%lld\n",flag);
printf("\n");
}

return 0;
}

Suggested Topics

Topic Category Replies Views Activity
C and C++ 0 17 11d

Want to read more? Browse other topics in C and C++ or view latest topics.